cuda-cccl 0.3.0__cp311-cp311-manylinux_2_24_aarch64.whl → 0.3.2__cp311-cp311-manylinux_2_24_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cuda-cccl might be problematic. Click here for more details.

Files changed (294) hide show
  1. cuda/cccl/cooperative/__init__.py +7 -1
  2. cuda/cccl/cooperative/experimental/__init__.py +21 -5
  3. cuda/cccl/headers/include/cub/agent/agent_adjacent_difference.cuh +2 -5
  4. cuda/cccl/headers/include/cub/agent/agent_batch_memcpy.cuh +2 -5
  5. cuda/cccl/headers/include/cub/agent/agent_for.cuh +2 -5
  6. cuda/cccl/headers/include/cub/agent/agent_histogram.cuh +354 -572
  7. cuda/cccl/headers/include/cub/agent/agent_merge.cuh +23 -21
  8. cuda/cccl/headers/include/cub/agent/agent_merge_sort.cuh +21 -3
  9. cuda/cccl/headers/include/cub/agent/agent_radix_sort_downsweep.cuh +2 -5
  10. cuda/cccl/headers/include/cub/agent/agent_radix_sort_histogram.cuh +2 -5
  11. cuda/cccl/headers/include/cub/agent/agent_radix_sort_onesweep.cuh +2 -5
  12. cuda/cccl/headers/include/cub/agent/agent_radix_sort_upsweep.cuh +2 -5
  13. cuda/cccl/headers/include/cub/agent/agent_rle.cuh +2 -5
  14. cuda/cccl/headers/include/cub/agent/agent_scan.cuh +5 -1
  15. cuda/cccl/headers/include/cub/agent/agent_scan_by_key.cuh +2 -5
  16. cuda/cccl/headers/include/cub/agent/agent_segmented_radix_sort.cuh +2 -5
  17. cuda/cccl/headers/include/cub/agent/agent_select_if.cuh +2 -5
  18. cuda/cccl/headers/include/cub/agent/agent_sub_warp_merge_sort.cuh +2 -5
  19. cuda/cccl/headers/include/cub/agent/agent_three_way_partition.cuh +2 -5
  20. cuda/cccl/headers/include/cub/agent/agent_unique_by_key.cuh +22 -5
  21. cuda/cccl/headers/include/cub/block/block_adjacent_difference.cuh +6 -8
  22. cuda/cccl/headers/include/cub/block/block_discontinuity.cuh +24 -14
  23. cuda/cccl/headers/include/cub/block/block_exchange.cuh +5 -0
  24. cuda/cccl/headers/include/cub/block/block_histogram.cuh +4 -0
  25. cuda/cccl/headers/include/cub/block/block_load.cuh +4 -0
  26. cuda/cccl/headers/include/cub/block/block_radix_rank.cuh +4 -2
  27. cuda/cccl/headers/include/cub/block/block_radix_sort.cuh +4 -2
  28. cuda/cccl/headers/include/cub/block/block_reduce.cuh +1 -0
  29. cuda/cccl/headers/include/cub/block/block_scan.cuh +12 -2
  30. cuda/cccl/headers/include/cub/block/block_store.cuh +3 -2
  31. cuda/cccl/headers/include/cub/detail/device_memory_resource.cuh +1 -0
  32. cuda/cccl/headers/include/cub/detail/mdspan_utils.cuh +34 -30
  33. cuda/cccl/headers/include/cub/detail/ptx-json-parser.h +1 -1
  34. cuda/cccl/headers/include/cub/device/device_for.cuh +118 -40
  35. cuda/cccl/headers/include/cub/device/device_reduce.cuh +6 -7
  36. cuda/cccl/headers/include/cub/device/device_segmented_reduce.cuh +170 -260
  37. cuda/cccl/headers/include/cub/device/device_transform.cuh +122 -91
  38. cuda/cccl/headers/include/cub/device/dispatch/dispatch_merge.cuh +6 -7
  39. cuda/cccl/headers/include/cub/device/dispatch/dispatch_radix_sort.cuh +2 -11
  40. cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce.cuh +12 -29
  41. cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce_deterministic.cuh +2 -7
  42. cuda/cccl/headers/include/cub/device/dispatch/dispatch_reduce_nondeterministic.cuh +0 -1
  43. cuda/cccl/headers/include/cub/device/dispatch/dispatch_segmented_sort.cuh +2 -3
  44. cuda/cccl/headers/include/cub/device/dispatch/dispatch_streaming_reduce.cuh +4 -5
  45. cuda/cccl/headers/include/cub/device/dispatch/dispatch_streaming_reduce_by_key.cuh +0 -1
  46. cuda/cccl/headers/include/cub/device/dispatch/dispatch_topk.cuh +3 -5
  47. cuda/cccl/headers/include/cub/device/dispatch/dispatch_transform.cuh +13 -5
  48. cuda/cccl/headers/include/cub/device/dispatch/kernels/for_each.cuh +72 -37
  49. cuda/cccl/headers/include/cub/device/dispatch/kernels/reduce.cuh +2 -5
  50. cuda/cccl/headers/include/cub/device/dispatch/kernels/scan.cuh +2 -5
  51. cuda/cccl/headers/include/cub/device/dispatch/kernels/segmented_reduce.cuh +2 -5
  52. cuda/cccl/headers/include/cub/device/dispatch/kernels/transform.cuh +22 -27
  53. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_adjacent_difference.cuh +2 -5
  54. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_batch_memcpy.cuh +2 -5
  55. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_for.cuh +2 -5
  56. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_histogram.cuh +2 -5
  57. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_merge.cuh +2 -5
  58. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_merge_sort.cuh +8 -0
  59. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_radix_sort.cuh +2 -5
  60. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_reduce_by_key.cuh +2 -5
  61. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_run_length_encode.cuh +2 -5
  62. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_scan.cuh +2 -5
  63. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_scan_by_key.cuh +2 -5
  64. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_segmented_sort.cuh +2 -5
  65. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_three_way_partition.cuh +2 -5
  66. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_transform.cuh +61 -70
  67. cuda/cccl/headers/include/cub/device/dispatch/tuning/tuning_unique_by_key.cuh +10 -0
  68. cuda/cccl/headers/include/cub/thread/thread_reduce.cuh +24 -17
  69. cuda/cccl/headers/include/cub/warp/specializations/warp_reduce_shfl.cuh +3 -2
  70. cuda/cccl/headers/include/cub/warp/specializations/warp_reduce_smem.cuh +3 -2
  71. cuda/cccl/headers/include/cub/warp/specializations/warp_scan_shfl.cuh +2 -2
  72. cuda/cccl/headers/include/cub/warp/warp_load.cuh +6 -6
  73. cuda/cccl/headers/include/cub/warp/warp_reduce.cuh +7 -2
  74. cuda/cccl/headers/include/cub/warp/warp_scan.cuh +7 -3
  75. cuda/cccl/headers/include/cub/warp/warp_store.cuh +1 -0
  76. cuda/cccl/headers/include/cuda/__algorithm/common.h +1 -1
  77. cuda/cccl/headers/include/cuda/__algorithm/copy.h +1 -1
  78. cuda/cccl/headers/include/cuda/__algorithm/fill.h +1 -1
  79. cuda/cccl/headers/include/cuda/__barrier/barrier_block_scope.h +19 -0
  80. cuda/cccl/headers/include/cuda/__cccl_config +1 -0
  81. cuda/cccl/headers/include/cuda/__cmath/fast_modulo_division.h +3 -74
  82. cuda/cccl/headers/include/cuda/__cmath/mul_hi.h +146 -0
  83. cuda/cccl/headers/include/cuda/__complex/get_real_imag.h +0 -4
  84. cuda/cccl/headers/include/cuda/__device/all_devices.h +46 -143
  85. cuda/cccl/headers/include/cuda/__device/arch_id.h +176 -0
  86. cuda/cccl/headers/include/cuda/__device/arch_traits.h +247 -323
  87. cuda/cccl/headers/include/cuda/__device/attributes.h +174 -123
  88. cuda/cccl/headers/include/cuda/__device/compute_capability.h +171 -0
  89. cuda/cccl/headers/include/cuda/__device/device_ref.h +27 -49
  90. cuda/cccl/headers/include/cuda/__device/physical_device.h +100 -96
  91. cuda/cccl/headers/include/cuda/__driver/driver_api.h +105 -3
  92. cuda/cccl/headers/include/cuda/__event/event.h +27 -26
  93. cuda/cccl/headers/include/cuda/__event/event_ref.h +5 -5
  94. cuda/cccl/headers/include/cuda/__event/timed_event.h +10 -7
  95. cuda/cccl/headers/include/cuda/__fwd/devices.h +44 -0
  96. cuda/cccl/headers/include/cuda/__fwd/zip_iterator.h +9 -0
  97. cuda/cccl/headers/include/cuda/__iterator/constant_iterator.h +46 -31
  98. cuda/cccl/headers/include/cuda/__iterator/strided_iterator.h +79 -47
  99. cuda/cccl/headers/include/cuda/__iterator/tabulate_output_iterator.h +59 -36
  100. cuda/cccl/headers/include/cuda/__iterator/transform_input_output_iterator.h +79 -49
  101. cuda/cccl/headers/include/cuda/__iterator/transform_iterator.h +74 -48
  102. cuda/cccl/headers/include/cuda/__iterator/transform_output_iterator.h +80 -55
  103. cuda/cccl/headers/include/cuda/__iterator/zip_common.h +148 -0
  104. cuda/cccl/headers/include/cuda/__iterator/zip_iterator.h +21 -137
  105. cuda/cccl/headers/include/cuda/__iterator/zip_transform_iterator.h +592 -0
  106. cuda/cccl/headers/include/cuda/__mdspan/host_device_accessor.h +127 -60
  107. cuda/cccl/headers/include/cuda/__mdspan/host_device_mdspan.h +178 -3
  108. cuda/cccl/headers/include/cuda/__mdspan/restrict_accessor.h +38 -8
  109. cuda/cccl/headers/include/cuda/__mdspan/restrict_mdspan.h +67 -1
  110. cuda/cccl/headers/include/cuda/__memory/ptr_in_range.h +93 -0
  111. cuda/cccl/headers/include/cuda/__memory_resource/get_memory_resource.h +4 -4
  112. cuda/cccl/headers/include/cuda/__memory_resource/properties.h +44 -0
  113. cuda/cccl/headers/include/cuda/__memory_resource/resource.h +1 -1
  114. cuda/cccl/headers/include/cuda/__memory_resource/resource_ref.h +4 -6
  115. cuda/cccl/headers/include/cuda/__nvtx/nvtx3.h +2 -1
  116. cuda/cccl/headers/include/cuda/__runtime/ensure_current_context.h +9 -7
  117. cuda/cccl/headers/include/cuda/__stream/stream.h +8 -8
  118. cuda/cccl/headers/include/cuda/__stream/stream_ref.h +18 -16
  119. cuda/cccl/headers/include/cuda/__utility/basic_any.h +1 -1
  120. cuda/cccl/headers/include/cuda/__utility/in_range.h +65 -0
  121. cuda/cccl/headers/include/cuda/algorithm +1 -1
  122. cuda/cccl/headers/include/cuda/cmath +1 -0
  123. cuda/cccl/headers/include/cuda/devices +13 -0
  124. cuda/cccl/headers/include/cuda/iterator +1 -0
  125. cuda/cccl/headers/include/cuda/memory +1 -0
  126. cuda/cccl/headers/include/cuda/std/__algorithm/equal_range.h +2 -2
  127. cuda/cccl/headers/include/cuda/std/__algorithm/find.h +1 -1
  128. cuda/cccl/headers/include/cuda/std/__algorithm/includes.h +2 -4
  129. cuda/cccl/headers/include/cuda/std/__algorithm/lower_bound.h +1 -1
  130. cuda/cccl/headers/include/cuda/std/__algorithm/make_projected.h +7 -15
  131. cuda/cccl/headers/include/cuda/std/__algorithm/min_element.h +1 -1
  132. cuda/cccl/headers/include/cuda/std/__algorithm/minmax_element.h +1 -2
  133. cuda/cccl/headers/include/cuda/std/__algorithm/partial_sort_copy.h +2 -2
  134. cuda/cccl/headers/include/cuda/std/__algorithm/upper_bound.h +1 -1
  135. cuda/cccl/headers/include/cuda/std/__bit/countl.h +8 -1
  136. cuda/cccl/headers/include/cuda/std/__bit/countr.h +2 -2
  137. cuda/cccl/headers/include/cuda/std/__bit/reference.h +11 -11
  138. cuda/cccl/headers/include/cuda/std/__cccl/algorithm_wrapper.h +36 -0
  139. cuda/cccl/headers/include/cuda/std/__cccl/builtin.h +46 -49
  140. cuda/cccl/headers/include/cuda/std/__cccl/execution_space.h +6 -0
  141. cuda/cccl/headers/include/cuda/std/__cccl/host_std_lib.h +52 -0
  142. cuda/cccl/headers/include/cuda/std/__cccl/memory_wrapper.h +36 -0
  143. cuda/cccl/headers/include/cuda/std/__cccl/numeric_wrapper.h +36 -0
  144. cuda/cccl/headers/include/cuda/std/__chrono/duration.h +16 -16
  145. cuda/cccl/headers/include/cuda/std/__chrono/steady_clock.h +5 -5
  146. cuda/cccl/headers/include/cuda/std/__chrono/system_clock.h +5 -5
  147. cuda/cccl/headers/include/cuda/std/__cmath/isnan.h +3 -2
  148. cuda/cccl/headers/include/cuda/std/__complex/complex.h +3 -2
  149. cuda/cccl/headers/include/cuda/std/__complex/literals.h +14 -34
  150. cuda/cccl/headers/include/cuda/std/__complex/nvbf16.h +2 -1
  151. cuda/cccl/headers/include/cuda/std/__complex/nvfp16.h +4 -3
  152. cuda/cccl/headers/include/cuda/std/__concepts/invocable.h +2 -2
  153. cuda/cccl/headers/include/cuda/std/__cstdlib/malloc.h +3 -2
  154. cuda/cccl/headers/include/cuda/std/__floating_point/fp.h +1 -1
  155. cuda/cccl/headers/include/cuda/std/__functional/bind.h +10 -13
  156. cuda/cccl/headers/include/cuda/std/__functional/function.h +5 -8
  157. cuda/cccl/headers/include/cuda/std/__functional/invoke.h +71 -335
  158. cuda/cccl/headers/include/cuda/std/__functional/mem_fn.h +1 -2
  159. cuda/cccl/headers/include/cuda/std/__functional/reference_wrapper.h +3 -3
  160. cuda/cccl/headers/include/cuda/std/__functional/weak_result_type.h +0 -6
  161. cuda/cccl/headers/include/cuda/std/__fwd/allocator.h +13 -0
  162. cuda/cccl/headers/include/cuda/std/__fwd/char_traits.h +13 -0
  163. cuda/cccl/headers/include/cuda/std/__fwd/complex.h +13 -4
  164. cuda/cccl/headers/include/cuda/std/__fwd/mdspan.h +23 -0
  165. cuda/cccl/headers/include/cuda/std/__fwd/pair.h +13 -0
  166. cuda/cccl/headers/include/cuda/std/__fwd/string.h +22 -0
  167. cuda/cccl/headers/include/cuda/std/__fwd/string_view.h +14 -0
  168. cuda/cccl/headers/include/cuda/std/__internal/features.h +0 -5
  169. cuda/cccl/headers/include/cuda/std/__internal/namespaces.h +21 -0
  170. cuda/cccl/headers/include/cuda/std/__iterator/iterator_traits.h +5 -5
  171. cuda/cccl/headers/include/cuda/std/__mdspan/extents.h +7 -1
  172. cuda/cccl/headers/include/cuda/std/__mdspan/mdspan.h +53 -39
  173. cuda/cccl/headers/include/cuda/std/__memory/allocator.h +3 -3
  174. cuda/cccl/headers/include/cuda/std/__memory/construct_at.h +1 -3
  175. cuda/cccl/headers/include/cuda/std/__optional/optional_base.h +1 -0
  176. cuda/cccl/headers/include/cuda/std/__ranges/compressed_movable_box.h +892 -0
  177. cuda/cccl/headers/include/cuda/std/__ranges/movable_box.h +2 -2
  178. cuda/cccl/headers/include/cuda/std/__tuple_dir/make_tuple_types.h +23 -1
  179. cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_like.h +4 -0
  180. cuda/cccl/headers/include/cuda/std/__tuple_dir/tuple_like_ext.h +4 -0
  181. cuda/cccl/headers/include/cuda/std/__type_traits/is_primary_template.h +7 -5
  182. cuda/cccl/headers/include/cuda/std/__type_traits/result_of.h +1 -1
  183. cuda/cccl/headers/include/cuda/std/__utility/pair.h +0 -5
  184. cuda/cccl/headers/include/cuda/std/bitset +1 -1
  185. cuda/cccl/headers/include/cuda/std/detail/libcxx/include/__config +15 -12
  186. cuda/cccl/headers/include/cuda/std/detail/libcxx/include/variant +11 -9
  187. cuda/cccl/headers/include/cuda/std/inplace_vector +4 -4
  188. cuda/cccl/headers/include/cuda/std/numbers +5 -0
  189. cuda/cccl/headers/include/cuda/std/string_view +155 -13
  190. cuda/cccl/headers/include/cuda/std/version +1 -4
  191. cuda/cccl/headers/include/cuda/stream_ref +5 -0
  192. cuda/cccl/headers/include/cuda/utility +1 -0
  193. cuda/cccl/headers/include/nv/target +7 -2
  194. cuda/cccl/headers/include/thrust/allocate_unique.h +1 -1
  195. cuda/cccl/headers/include/thrust/detail/allocator/allocator_traits.h +309 -33
  196. cuda/cccl/headers/include/thrust/detail/allocator/copy_construct_range.h +151 -4
  197. cuda/cccl/headers/include/thrust/detail/allocator/destroy_range.h +60 -3
  198. cuda/cccl/headers/include/thrust/detail/allocator/fill_construct_range.h +45 -3
  199. cuda/cccl/headers/include/thrust/detail/allocator/malloc_allocator.h +31 -6
  200. cuda/cccl/headers/include/thrust/detail/allocator/tagged_allocator.h +29 -16
  201. cuda/cccl/headers/include/thrust/detail/allocator/temporary_allocator.h +41 -4
  202. cuda/cccl/headers/include/thrust/detail/allocator/value_initialize_range.h +42 -4
  203. cuda/cccl/headers/include/thrust/detail/complex/ccosh.h +3 -3
  204. cuda/cccl/headers/include/thrust/detail/integer_math.h +3 -20
  205. cuda/cccl/headers/include/thrust/detail/internal_functional.h +1 -1
  206. cuda/cccl/headers/include/thrust/detail/memory_algorithms.h +1 -1
  207. cuda/cccl/headers/include/thrust/detail/temporary_array.h +1 -1
  208. cuda/cccl/headers/include/thrust/detail/type_traits.h +1 -1
  209. cuda/cccl/headers/include/thrust/device_delete.h +18 -3
  210. cuda/cccl/headers/include/thrust/device_free.h +16 -3
  211. cuda/cccl/headers/include/thrust/device_new.h +29 -8
  212. cuda/cccl/headers/include/thrust/host_vector.h +1 -1
  213. cuda/cccl/headers/include/thrust/iterator/iterator_traits.h +11 -0
  214. cuda/cccl/headers/include/thrust/iterator/tabulate_output_iterator.h +5 -2
  215. cuda/cccl/headers/include/thrust/mr/disjoint_pool.h +1 -1
  216. cuda/cccl/headers/include/thrust/mr/pool.h +1 -1
  217. cuda/cccl/headers/include/thrust/system/cuda/detail/copy.h +33 -0
  218. cuda/cccl/headers/include/thrust/system/cuda/detail/find.h +13 -115
  219. cuda/cccl/headers/include/thrust/system/cuda/detail/mismatch.h +8 -2
  220. cuda/cccl/headers/include/thrust/type_traits/is_contiguous_iterator.h +7 -7
  221. cuda/cccl/parallel/experimental/__init__.py +21 -74
  222. cuda/compute/__init__.py +79 -0
  223. cuda/{cccl/parallel/experimental → compute}/_bindings.pyi +43 -1
  224. cuda/{cccl/parallel/experimental → compute}/_bindings_impl.pyx +157 -8
  225. cuda/{cccl/parallel/experimental → compute}/algorithms/_histogram.py +2 -2
  226. cuda/{cccl/parallel/experimental → compute}/algorithms/_merge_sort.py +2 -2
  227. cuda/{cccl/parallel/experimental → compute}/algorithms/_radix_sort.py +3 -3
  228. cuda/{cccl/parallel/experimental → compute}/algorithms/_reduce.py +2 -2
  229. cuda/{cccl/parallel/experimental → compute}/algorithms/_scan.py +112 -40
  230. cuda/{cccl/parallel/experimental → compute}/algorithms/_segmented_reduce.py +2 -2
  231. cuda/{cccl/parallel/experimental → compute}/algorithms/_three_way_partition.py +2 -2
  232. cuda/{cccl/parallel/experimental → compute}/algorithms/_transform.py +36 -15
  233. cuda/{cccl/parallel/experimental → compute}/algorithms/_unique_by_key.py +2 -2
  234. cuda/compute/cu12/_bindings_impl.cpython-311-aarch64-linux-gnu.so +0 -0
  235. cuda/{cccl/parallel/experimental → compute}/cu12/cccl/libcccl.c.parallel.so +0 -0
  236. cuda/compute/cu13/_bindings_impl.cpython-311-aarch64-linux-gnu.so +0 -0
  237. cuda/{cccl/parallel/experimental → compute}/cu13/cccl/libcccl.c.parallel.so +0 -0
  238. cuda/{cccl/parallel/experimental → compute}/iterators/__init__.py +2 -0
  239. cuda/{cccl/parallel/experimental → compute}/iterators/_factories.py +36 -8
  240. cuda/{cccl/parallel/experimental → compute}/iterators/_iterators.py +206 -1
  241. cuda/{cccl/parallel/experimental → compute}/numba_utils.py +2 -2
  242. cuda/{cccl/parallel/experimental → compute}/struct.py +2 -2
  243. cuda/{cccl/parallel/experimental → compute}/typing.py +2 -0
  244. cuda/coop/__init__.py +8 -0
  245. cuda/{cccl/cooperative/experimental → coop}/_nvrtc.py +3 -2
  246. cuda/{cccl/cooperative/experimental → coop}/_scan_op.py +3 -3
  247. cuda/{cccl/cooperative/experimental → coop}/_types.py +2 -2
  248. cuda/{cccl/cooperative/experimental → coop}/_typing.py +1 -1
  249. cuda/{cccl/cooperative/experimental → coop}/block/__init__.py +6 -6
  250. cuda/{cccl/cooperative/experimental → coop}/block/_block_exchange.py +4 -4
  251. cuda/{cccl/cooperative/experimental → coop}/block/_block_load_store.py +6 -6
  252. cuda/{cccl/cooperative/experimental → coop}/block/_block_merge_sort.py +4 -4
  253. cuda/{cccl/cooperative/experimental → coop}/block/_block_radix_sort.py +6 -6
  254. cuda/{cccl/cooperative/experimental → coop}/block/_block_reduce.py +6 -6
  255. cuda/{cccl/cooperative/experimental → coop}/block/_block_scan.py +7 -7
  256. cuda/coop/warp/__init__.py +9 -0
  257. cuda/{cccl/cooperative/experimental → coop}/warp/_warp_merge_sort.py +3 -3
  258. cuda/{cccl/cooperative/experimental → coop}/warp/_warp_reduce.py +6 -6
  259. cuda/{cccl/cooperative/experimental → coop}/warp/_warp_scan.py +4 -4
  260. {cuda_cccl-0.3.0.dist-info → cuda_cccl-0.3.2.dist-info}/METADATA +1 -1
  261. {cuda_cccl-0.3.0.dist-info → cuda_cccl-0.3.2.dist-info}/RECORD +275 -276
  262. cuda/cccl/cooperative/experimental/warp/__init__.py +0 -9
  263. cuda/cccl/headers/include/cub/device/dispatch/dispatch_advance_iterators.cuh +0 -111
  264. cuda/cccl/headers/include/thrust/detail/algorithm_wrapper.h +0 -37
  265. cuda/cccl/headers/include/thrust/detail/allocator/allocator_traits.inl +0 -371
  266. cuda/cccl/headers/include/thrust/detail/allocator/copy_construct_range.inl +0 -242
  267. cuda/cccl/headers/include/thrust/detail/allocator/destroy_range.inl +0 -137
  268. cuda/cccl/headers/include/thrust/detail/allocator/fill_construct_range.inl +0 -99
  269. cuda/cccl/headers/include/thrust/detail/allocator/malloc_allocator.inl +0 -68
  270. cuda/cccl/headers/include/thrust/detail/allocator/tagged_allocator.inl +0 -86
  271. cuda/cccl/headers/include/thrust/detail/allocator/temporary_allocator.inl +0 -79
  272. cuda/cccl/headers/include/thrust/detail/allocator/value_initialize_range.inl +0 -98
  273. cuda/cccl/headers/include/thrust/detail/device_delete.inl +0 -52
  274. cuda/cccl/headers/include/thrust/detail/device_free.inl +0 -47
  275. cuda/cccl/headers/include/thrust/detail/device_new.inl +0 -61
  276. cuda/cccl/headers/include/thrust/detail/memory_wrapper.h +0 -40
  277. cuda/cccl/headers/include/thrust/detail/numeric_wrapper.h +0 -37
  278. cuda/cccl/parallel/experimental/.gitignore +0 -4
  279. cuda/cccl/parallel/experimental/cu12/_bindings_impl.cpython-311-aarch64-linux-gnu.so +0 -0
  280. cuda/cccl/parallel/experimental/cu13/_bindings_impl.cpython-311-aarch64-linux-gnu.so +0 -0
  281. /cuda/{cccl/parallel/experimental → compute}/_bindings.py +0 -0
  282. /cuda/{cccl/parallel/experimental → compute}/_caching.py +0 -0
  283. /cuda/{cccl/parallel/experimental → compute}/_cccl_interop.py +0 -0
  284. /cuda/{cccl/parallel/experimental → compute}/_utils/__init__.py +0 -0
  285. /cuda/{cccl/parallel/experimental → compute}/_utils/protocols.py +0 -0
  286. /cuda/{cccl/parallel/experimental → compute}/_utils/temp_storage_buffer.py +0 -0
  287. /cuda/{cccl/parallel/experimental → compute}/algorithms/__init__.py +0 -0
  288. /cuda/{cccl/parallel/experimental → compute}/cccl/.gitkeep +0 -0
  289. /cuda/{cccl/parallel/experimental → compute}/iterators/_zip_iterator.py +0 -0
  290. /cuda/{cccl/parallel/experimental → compute}/op.py +0 -0
  291. /cuda/{cccl/cooperative/experimental → coop}/_caching.py +0 -0
  292. /cuda/{cccl/cooperative/experimental → coop}/_common.py +0 -0
  293. {cuda_cccl-0.3.0.dist-info → cuda_cccl-0.3.2.dist-info}/WHEEL +0 -0
  294. {cuda_cccl-0.3.0.dist-info → cuda_cccl-0.3.2.dist-info}/licenses/LICENSE +0 -0
@@ -1,242 +0,0 @@
1
- /*
2
- * Copyright 2008-2013 NVIDIA Corporation
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- #pragma once
18
-
19
- #include <thrust/detail/config.h>
20
-
21
- #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
22
- # pragma GCC system_header
23
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
24
- # pragma clang system_header
25
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
26
- # pragma system_header
27
- #endif // no system header
28
- #include <thrust/advance.h>
29
- #include <thrust/detail/allocator/allocator_traits.h>
30
- #include <thrust/detail/copy.h>
31
- #include <thrust/detail/memory_wrapper.h>
32
- #include <thrust/detail/type_traits/pointer_traits.h>
33
- #include <thrust/distance.h>
34
- #include <thrust/for_each.h>
35
- #include <thrust/iterator/iterator_traits.h>
36
- #include <thrust/iterator/zip_iterator.h>
37
- #include <thrust/tuple.h>
38
-
39
- THRUST_NAMESPACE_BEGIN
40
- namespace detail
41
- {
42
- namespace allocator_traits_detail
43
- {
44
-
45
- template <typename Allocator, typename InputType, typename OutputType>
46
- struct copy_construct_with_allocator
47
- {
48
- Allocator& a;
49
-
50
- _CCCL_HOST_DEVICE copy_construct_with_allocator(Allocator& a)
51
- : a(a)
52
- {}
53
-
54
- template <typename Tuple>
55
- inline _CCCL_HOST_DEVICE void operator()(Tuple t)
56
- {
57
- const InputType& in = thrust::get<0>(t);
58
- OutputType& out = thrust::get<1>(t);
59
-
60
- allocator_traits<Allocator>::construct(a, &out, in);
61
- }
62
- };
63
-
64
- // we need to use allocator_traits<Allocator>::construct() to
65
- // copy construct a T if either:
66
- // 1. Allocator has a 2-argument construct() member or
67
- // 2. T has a non-trivial copy constructor
68
- template <typename Allocator, typename T>
69
- struct needs_copy_construct_via_allocator
70
- : integral_constant<bool,
71
- (has_member_construct2<Allocator, T, T>::value
72
- || !::cuda::std::is_trivially_copy_constructible<T>::value)>
73
- {};
74
-
75
- // we know that std::allocator::construct's only effect is to call T's
76
- // copy constructor, so we needn't consider or use its construct() member for copy construction
77
- template <typename U, typename T>
78
- struct needs_copy_construct_via_allocator<std::allocator<U>, T>
79
- : integral_constant<bool, !::cuda::std::is_trivially_copy_constructible<T>::value>
80
- {};
81
-
82
- // XXX it's regrettable that this implementation is copied almost
83
- // exactly from system::detail::generic::uninitialized_copy
84
- // perhaps generic::uninitialized_copy could call this routine
85
- // with a default allocator
86
- template <typename Allocator, typename FromSystem, typename ToSystem, typename InputIterator, typename Pointer>
87
- _CCCL_HOST_DEVICE enable_if_convertible_t<FromSystem, ToSystem, Pointer> uninitialized_copy_with_allocator(
88
- Allocator& a,
89
- const thrust::execution_policy<FromSystem>&,
90
- const thrust::execution_policy<ToSystem>& to_system,
91
- InputIterator first,
92
- InputIterator last,
93
- Pointer result)
94
- {
95
- // zip up the iterators
96
- using IteratorTuple = thrust::tuple<InputIterator, Pointer>;
97
- using ZipIterator = thrust::zip_iterator<IteratorTuple>;
98
-
99
- ZipIterator begin = thrust::make_zip_iterator(first, result);
100
- ZipIterator end = begin;
101
-
102
- // get a zip_iterator pointing to the end
103
- const thrust::detail::it_difference_t<InputIterator> n = ::cuda::std::distance(first, last);
104
- ::cuda::std::advance(end, n);
105
-
106
- // create a functor
107
- using InputType = it_value_t<InputIterator>;
108
- using OutputType = it_value_t<Pointer>;
109
-
110
- // do the for_each
111
- // note we use to_system to dispatch the for_each
112
- thrust::for_each(to_system, begin, end, copy_construct_with_allocator<Allocator, InputType, OutputType>(a));
113
-
114
- // return the end of the output range
115
- return thrust::get<1>(end.get_iterator_tuple());
116
- }
117
-
118
- // XXX it's regrettable that this implementation is copied almost
119
- // exactly from system::detail::generic::uninitialized_copy_n
120
- // perhaps generic::uninitialized_copy_n could call this routine
121
- // with a default allocator
122
- template <typename Allocator, typename FromSystem, typename ToSystem, typename InputIterator, typename Size, typename Pointer>
123
- _CCCL_HOST_DEVICE enable_if_convertible_t<FromSystem, ToSystem, Pointer> uninitialized_copy_with_allocator_n(
124
- Allocator& a,
125
- const thrust::execution_policy<FromSystem>&,
126
- const thrust::execution_policy<ToSystem>& to_system,
127
- InputIterator first,
128
- Size n,
129
- Pointer result)
130
- {
131
- // zip up the iterators
132
- using IteratorTuple = thrust::tuple<InputIterator, Pointer>;
133
- using ZipIterator = thrust::zip_iterator<IteratorTuple>;
134
-
135
- ZipIterator begin = thrust::make_zip_iterator(first, result);
136
-
137
- // create a functor
138
- using InputType = it_value_t<InputIterator>;
139
- using OutputType = it_value_t<Pointer>;
140
-
141
- // do the for_each_n
142
- // note we use to_system to dispatch the for_each_n
143
- ZipIterator end =
144
- thrust::for_each_n(to_system, begin, n, copy_construct_with_allocator<Allocator, InputType, OutputType>(a));
145
-
146
- // return the end of the output range
147
- return thrust::get<1>(end.get_iterator_tuple());
148
- }
149
-
150
- template <typename Allocator, typename FromSystem, typename ToSystem, typename InputIterator, typename Pointer>
151
- _CCCL_HOST_DEVICE typename disable_if_convertible<FromSystem, ToSystem, Pointer>::type uninitialized_copy_with_allocator(
152
- Allocator&,
153
- const thrust::execution_policy<FromSystem>& from_system,
154
- const thrust::execution_policy<ToSystem>& to_system,
155
- InputIterator first,
156
- InputIterator last,
157
- Pointer result)
158
- {
159
- // the systems aren't trivially interoperable
160
- // just call two_system_copy and hope for the best
161
- return thrust::detail::two_system_copy(from_system, to_system, first, last, result);
162
- } // end uninitialized_copy_with_allocator()
163
-
164
- template <typename Allocator, typename FromSystem, typename ToSystem, typename InputIterator, typename Size, typename Pointer>
165
- _CCCL_HOST_DEVICE typename disable_if_convertible<FromSystem, ToSystem, Pointer>::type
166
- uninitialized_copy_with_allocator_n(
167
- Allocator&,
168
- const thrust::execution_policy<FromSystem>& from_system,
169
- const thrust::execution_policy<ToSystem>& to_system,
170
- InputIterator first,
171
- Size n,
172
- Pointer result)
173
- {
174
- // the systems aren't trivially interoperable
175
- // just call two_system_copy_n and hope for the best
176
- return thrust::detail::two_system_copy_n(from_system, to_system, first, n, result);
177
- } // end uninitialized_copy_with_allocator_n()
178
-
179
- template <typename FromSystem, typename Allocator, typename InputIterator, typename Pointer>
180
- _CCCL_HOST_DEVICE
181
- typename disable_if<needs_copy_construct_via_allocator<Allocator, typename pointer_element<Pointer>::type>::value,
182
- Pointer>::type
183
- copy_construct_range(thrust::execution_policy<FromSystem>& from_system,
184
- Allocator& a,
185
- InputIterator first,
186
- InputIterator last,
187
- Pointer result)
188
- {
189
- // just call two_system_copy
190
- return thrust::detail::two_system_copy(from_system, allocator_system<Allocator>::get(a), first, last, result);
191
- }
192
-
193
- template <typename FromSystem, typename Allocator, typename InputIterator, typename Size, typename Pointer>
194
- _CCCL_HOST_DEVICE
195
- typename disable_if<needs_copy_construct_via_allocator<Allocator, typename pointer_element<Pointer>::type>::value,
196
- Pointer>::type
197
- copy_construct_range_n(
198
- thrust::execution_policy<FromSystem>& from_system, Allocator& a, InputIterator first, Size n, Pointer result)
199
- {
200
- // just call two_system_copy_n
201
- return thrust::detail::two_system_copy_n(from_system, allocator_system<Allocator>::get(a), first, n, result);
202
- }
203
-
204
- template <typename FromSystem, typename Allocator, typename InputIterator, typename Pointer>
205
- _CCCL_HOST_DEVICE ::cuda::std::
206
- enable_if_t<needs_copy_construct_via_allocator<Allocator, typename pointer_element<Pointer>::type>::value, Pointer>
207
- copy_construct_range(thrust::execution_policy<FromSystem>& from_system,
208
- Allocator& a,
209
- InputIterator first,
210
- InputIterator last,
211
- Pointer result)
212
- {
213
- return uninitialized_copy_with_allocator(a, from_system, allocator_system<Allocator>::get(a), first, last, result);
214
- }
215
-
216
- template <typename FromSystem, typename Allocator, typename InputIterator, typename Size, typename Pointer>
217
- _CCCL_HOST_DEVICE ::cuda::std::
218
- enable_if_t<needs_copy_construct_via_allocator<Allocator, typename pointer_element<Pointer>::type>::value, Pointer>
219
- copy_construct_range_n(
220
- thrust::execution_policy<FromSystem>& from_system, Allocator& a, InputIterator first, Size n, Pointer result)
221
- {
222
- return uninitialized_copy_with_allocator_n(a, from_system, allocator_system<Allocator>::get(a), first, n, result);
223
- }
224
-
225
- } // namespace allocator_traits_detail
226
-
227
- template <typename System, typename Allocator, typename InputIterator, typename Pointer>
228
- _CCCL_HOST_DEVICE Pointer copy_construct_range(
229
- thrust::execution_policy<System>& from_system, Allocator& a, InputIterator first, InputIterator last, Pointer result)
230
- {
231
- return allocator_traits_detail::copy_construct_range(from_system, a, first, last, result);
232
- }
233
-
234
- template <typename System, typename Allocator, typename InputIterator, typename Size, typename Pointer>
235
- _CCCL_HOST_DEVICE Pointer copy_construct_range_n(
236
- thrust::execution_policy<System>& from_system, Allocator& a, InputIterator first, Size n, Pointer result)
237
- {
238
- return allocator_traits_detail::copy_construct_range_n(from_system, a, first, n, result);
239
- }
240
-
241
- } // namespace detail
242
- THRUST_NAMESPACE_END
@@ -1,137 +0,0 @@
1
- /*
2
- * Copyright 2008-2021 NVIDIA Corporation
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- #pragma once
18
-
19
- #include <thrust/detail/config.h>
20
-
21
- #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
22
- # pragma GCC system_header
23
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
24
- # pragma clang system_header
25
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
26
- # pragma system_header
27
- #endif // no system header
28
-
29
- #include <thrust/detail/allocator/allocator_traits.h>
30
- #include <thrust/detail/allocator/destroy_range.h>
31
- #include <thrust/detail/memory_wrapper.h>
32
- #include <thrust/detail/type_traits/pointer_traits.h>
33
- #include <thrust/for_each.h>
34
-
35
- THRUST_NAMESPACE_BEGIN
36
- namespace detail
37
- {
38
- namespace allocator_traits_detail
39
- {
40
-
41
- // destroy_range has three cases:
42
- // if Allocator has an effectful member function destroy:
43
- // 1. destroy via the allocator
44
- // else
45
- // 2. if T has a non-trivial destructor, destroy the range without using the allocator
46
- // 3. if T has a trivial destructor, do a no-op
47
-
48
- template <typename Allocator, typename T>
49
- struct has_effectful_member_destroy : has_member_destroy<Allocator, T>
50
- {};
51
-
52
- // std::allocator::destroy's only effect is to invoke its argument's destructor
53
- template <typename U, typename T>
54
- struct has_effectful_member_destroy<std::allocator<U>, T> : thrust::detail::false_type
55
- {};
56
-
57
- // case 1: Allocator has an effectful 1-argument member function "destroy"
58
- template <typename Allocator, typename Pointer>
59
- struct enable_if_destroy_range_case1
60
- : ::cuda::std::enable_if<has_effectful_member_destroy<Allocator, typename pointer_element<Pointer>::type>::value>
61
- {};
62
-
63
- // case 2: Allocator has no member function "destroy", but T has a non-trivial destructor
64
- template <typename Allocator, typename Pointer>
65
- struct enable_if_destroy_range_case2
66
- : ::cuda::std::enable_if<!has_effectful_member_destroy<Allocator, typename pointer_element<Pointer>::type>::value
67
- && !::cuda::std::is_trivially_destructible<typename pointer_element<Pointer>::type>::value>
68
- {};
69
-
70
- // case 3: Allocator has no member function "destroy", and T has a trivial destructor
71
- template <typename Allocator, typename Pointer>
72
- struct enable_if_destroy_range_case3
73
- : ::cuda::std::enable_if<!has_effectful_member_destroy<Allocator, typename pointer_element<Pointer>::type>::value
74
- && ::cuda::std::is_trivially_destructible<typename pointer_element<Pointer>::type>::value>
75
- {};
76
-
77
- template <typename Allocator>
78
- struct destroy_via_allocator
79
- {
80
- Allocator& a;
81
-
82
- _CCCL_HOST_DEVICE destroy_via_allocator(Allocator& a) noexcept
83
- : a(a)
84
- {}
85
-
86
- template <typename T>
87
- inline _CCCL_HOST_DEVICE void operator()(T& x) noexcept
88
- {
89
- allocator_traits<Allocator>::destroy(a, &x);
90
- }
91
- };
92
-
93
- // destroy_range case 1: destroy via allocator
94
- template <typename Allocator, typename Pointer, typename Size>
95
- _CCCL_HOST_DEVICE typename enable_if_destroy_range_case1<Allocator, Pointer>::type
96
- destroy_range(Allocator& a, Pointer p, Size n) noexcept
97
- {
98
- thrust::for_each_n(allocator_system<Allocator>::get(a), p, n, destroy_via_allocator<Allocator>(a));
99
- }
100
-
101
- // we must prepare for His coming
102
- struct gozer
103
- {
104
- _CCCL_EXEC_CHECK_DISABLE
105
- template <typename T>
106
- inline _CCCL_HOST_DEVICE void operator()(T& x) noexcept
107
- {
108
- x.~T();
109
- }
110
- };
111
-
112
- // destroy_range case 2: destroy without the allocator
113
- template <typename Allocator, typename Pointer, typename Size>
114
- _CCCL_HOST_DEVICE typename enable_if_destroy_range_case2<Allocator, Pointer>::type
115
- destroy_range(Allocator& a, Pointer p, Size n) noexcept
116
- {
117
- thrust::for_each_n(allocator_system<Allocator>::get(a), p, n, gozer());
118
- }
119
-
120
- // destroy_range case 3: no-op
121
- template <typename Allocator, typename Pointer, typename Size>
122
- _CCCL_HOST_DEVICE typename enable_if_destroy_range_case3<Allocator, Pointer>::type
123
- destroy_range(Allocator&, Pointer, Size) noexcept
124
- {
125
- // no op
126
- }
127
-
128
- } // namespace allocator_traits_detail
129
-
130
- template <typename Allocator, typename Pointer, typename Size>
131
- _CCCL_HOST_DEVICE void destroy_range(Allocator& a, Pointer p, Size n) noexcept
132
- {
133
- return allocator_traits_detail::destroy_range(a, p, n);
134
- }
135
-
136
- } // namespace detail
137
- THRUST_NAMESPACE_END
@@ -1,99 +0,0 @@
1
- /*
2
- * Copyright 2008-2013 NVIDIA Corporation
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- #pragma once
18
-
19
- #include <thrust/detail/config.h>
20
-
21
- #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
22
- # pragma GCC system_header
23
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
24
- # pragma clang system_header
25
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
26
- # pragma system_header
27
- #endif // no system header
28
- #include <thrust/detail/allocator/allocator_traits.h>
29
- #include <thrust/detail/memory_wrapper.h>
30
- #include <thrust/detail/type_traits.h>
31
- #include <thrust/detail/type_traits/pointer_traits.h>
32
- #include <thrust/for_each.h>
33
- #include <thrust/uninitialized_fill.h>
34
-
35
- THRUST_NAMESPACE_BEGIN
36
- namespace detail
37
- {
38
- namespace allocator_traits_detail
39
- {
40
-
41
- // fill_construct_range has 2 cases:
42
- // if Allocator has an effectful member function construct:
43
- // 1. construct via the allocator
44
- // else
45
- // 2. construct via uninitialized_fill
46
-
47
- template <typename Allocator, typename T, typename Arg1>
48
- struct has_effectful_member_construct2 : has_member_construct2<Allocator, T, Arg1>
49
- {};
50
-
51
- // std::allocator::construct's only effect is to invoke placement new
52
- template <typename U, typename T, typename Arg1>
53
- struct has_effectful_member_construct2<std::allocator<U>, T, Arg1> : thrust::detail::false_type
54
- {};
55
-
56
- template <typename Allocator, typename Arg1>
57
- struct construct2_via_allocator
58
- {
59
- Allocator& a;
60
- Arg1 arg;
61
-
62
- _CCCL_HOST_DEVICE construct2_via_allocator(Allocator& a, const Arg1& arg)
63
- : a(a)
64
- , arg(arg)
65
- {}
66
-
67
- template <typename T>
68
- inline _CCCL_HOST_DEVICE void operator()(T& x)
69
- {
70
- allocator_traits<Allocator>::construct(a, &x, arg);
71
- }
72
- };
73
-
74
- template <typename Allocator, typename Pointer, typename Size, typename T>
75
- _CCCL_HOST_DEVICE ::cuda::std::enable_if_t<
76
- has_effectful_member_construct2<Allocator, typename pointer_element<Pointer>::type, T>::value>
77
- fill_construct_range(Allocator& a, Pointer p, Size n, const T& value)
78
- {
79
- thrust::for_each_n(allocator_system<Allocator>::get(a), p, n, construct2_via_allocator<Allocator, T>(a, value));
80
- }
81
-
82
- template <typename Allocator, typename Pointer, typename Size, typename T>
83
- _CCCL_HOST_DEVICE ::cuda::std::enable_if_t<
84
- !has_effectful_member_construct2<Allocator, typename pointer_element<Pointer>::type, T>::value>
85
- fill_construct_range(Allocator& a, Pointer p, Size n, const T& value)
86
- {
87
- thrust::uninitialized_fill_n(allocator_system<Allocator>::get(a), p, n, value);
88
- }
89
-
90
- } // namespace allocator_traits_detail
91
-
92
- template <typename Alloc, typename Pointer, typename Size, typename T>
93
- _CCCL_HOST_DEVICE void fill_construct_range(Alloc& a, Pointer p, Size n, const T& value)
94
- {
95
- return allocator_traits_detail::fill_construct_range(a, p, n, value);
96
- }
97
-
98
- } // namespace detail
99
- THRUST_NAMESPACE_END
@@ -1,68 +0,0 @@
1
- /*
2
- * Copyright 2008-2013 NVIDIA Corporation
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- #pragma once
18
-
19
- #include <thrust/detail/config.h>
20
-
21
- #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
22
- # pragma GCC system_header
23
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
24
- # pragma clang system_header
25
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
26
- # pragma system_header
27
- #endif // no system header
28
- #include <thrust/detail/allocator/malloc_allocator.h>
29
- #include <thrust/detail/malloc_and_free.h>
30
- #include <thrust/detail/raw_pointer_cast.h>
31
- #include <thrust/system/detail/bad_alloc.h>
32
- #include <thrust/system/detail/generic/select_system.h>
33
-
34
- THRUST_NAMESPACE_BEGIN
35
- namespace detail
36
- {
37
-
38
- template <typename T, typename System, typename Pointer>
39
- typename malloc_allocator<T, System, Pointer>::pointer
40
- malloc_allocator<T, System, Pointer>::allocate(typename malloc_allocator<T, System, Pointer>::size_type cnt)
41
- {
42
- using thrust::system::detail::generic::select_system;
43
-
44
- // XXX should use a hypothetical thrust::static_pointer_cast here
45
- System system;
46
-
47
- pointer result = thrust::malloc<T>(select_system(system), cnt);
48
-
49
- if (result.get() == 0)
50
- {
51
- throw thrust::system::detail::bad_alloc("malloc_allocator::allocate: malloc failed");
52
- } // end if
53
-
54
- return result;
55
- } // end malloc_allocator::allocate()
56
-
57
- template <typename T, typename System, typename Pointer>
58
- void malloc_allocator<T, System, Pointer>::deallocate(typename malloc_allocator<T, System, Pointer>::pointer p,
59
- typename malloc_allocator<T, System, Pointer>::size_type) noexcept
60
- {
61
- using thrust::system::detail::generic::select_system;
62
-
63
- System system;
64
- thrust::free(select_system(system), p);
65
- } // end malloc_allocator
66
-
67
- } // namespace detail
68
- THRUST_NAMESPACE_END
@@ -1,86 +0,0 @@
1
- /*
2
- * Copyright 2008-2013 NVIDIA Corporation
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- #pragma once
18
-
19
- #include <thrust/detail/config.h>
20
-
21
- #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
22
- # pragma GCC system_header
23
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
24
- # pragma clang system_header
25
- #elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
26
- # pragma system_header
27
- #endif // no system header
28
- #include <thrust/detail/allocator/tagged_allocator.h>
29
-
30
- #include <cuda/std/limits>
31
-
32
- THRUST_NAMESPACE_BEGIN
33
- namespace detail
34
- {
35
-
36
- template <typename T, typename Tag, typename Pointer>
37
- _CCCL_HOST_DEVICE tagged_allocator<T, Tag, Pointer>::tagged_allocator()
38
- {}
39
-
40
- template <typename T, typename Tag, typename Pointer>
41
- _CCCL_HOST_DEVICE tagged_allocator<T, Tag, Pointer>::tagged_allocator(const tagged_allocator<T, Tag, Pointer>&)
42
- {}
43
-
44
- template <typename T, typename Tag, typename Pointer>
45
- template <typename U, typename OtherPointer>
46
- _CCCL_HOST_DEVICE tagged_allocator<T, Tag, Pointer>::tagged_allocator(const tagged_allocator<U, Tag, OtherPointer>&)
47
- {}
48
-
49
- template <typename T, typename Tag, typename Pointer>
50
- _CCCL_HOST_DEVICE tagged_allocator<T, Tag, Pointer>::~tagged_allocator()
51
- {}
52
-
53
- template <typename T, typename Tag, typename Pointer>
54
- _CCCL_HOST_DEVICE typename tagged_allocator<T, Tag, Pointer>::pointer
55
- tagged_allocator<T, Tag, Pointer>::address(reference x) const
56
- {
57
- return &x;
58
- }
59
-
60
- template <typename T, typename Tag, typename Pointer>
61
- _CCCL_HOST_DEVICE typename tagged_allocator<T, Tag, Pointer>::const_pointer
62
- tagged_allocator<T, Tag, Pointer>::address(const_reference x) const
63
- {
64
- return &x;
65
- }
66
-
67
- template <typename T, typename Tag, typename Pointer>
68
- typename tagged_allocator<T, Tag, Pointer>::size_type tagged_allocator<T, Tag, Pointer>::max_size() const
69
- {
70
- return (::cuda::std::numeric_limits<size_type>::max)() / sizeof(T);
71
- }
72
-
73
- template <typename T1, typename Pointer1, typename T2, typename Pointer2, typename Tag>
74
- _CCCL_HOST_DEVICE bool operator==(const tagged_allocator<T1, Pointer1, Tag>&, const tagged_allocator<T2, Pointer2, Tag>&)
75
- {
76
- return true;
77
- }
78
-
79
- template <typename T1, typename Pointer1, typename T2, typename Pointer2, typename Tag>
80
- _CCCL_HOST_DEVICE bool operator!=(const tagged_allocator<T1, Pointer1, Tag>&, const tagged_allocator<T2, Pointer2, Tag>&)
81
- {
82
- return false;
83
- }
84
-
85
- } // namespace detail
86
- THRUST_NAMESPACE_END