Skip to content

Commit

Permalink
Document deprecation for Kokkos 4 (#593)
Browse files Browse the repository at this point in the history
* Document deprecation for Kokkos 4

* Fix class name prefix

* Provide an example

* Add some more

* Also try list approach

* Remove table, subsections for releases

* Created sections for all releases

* Sort items into releases

* Complete 4.5 release

* Deprecations for -> Deprecated in

* List deprecated symbolds for tasking

* Don't list ALL_t

* Fix inline literal

* Fix typo

* Apply suggestions from code review

Co-authored-by: JBludau <[email protected]>

---------

Co-authored-by: JBludau <[email protected]>
  • Loading branch information
masterleinad and JBludau authored Nov 25, 2024
1 parent db01e6b commit 6d2f2d0
Showing 1 changed file with 183 additions and 2 deletions.
185 changes: 183 additions & 2 deletions docs/source/deprecation_page.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,186 @@
Deprecation for Kokkos-3.x
==========================
Deprecations
************

Deprecated in Kokkos 4.x
===========================

Deprecated in Kokkos 4.5
---------------------------

* Tasking interface: ``BasicFuture``, ``TaskSingle``, ``TaskPriority``, ``task_spawn``, ``host_spawn``, ``respawn``, ``when_all``, ``wait``
* replacement: none
* unused, limited implementation

* ``HPX::HPX::is_asynchronous(HPX const & = HPX())``
* replacement: none
* unused, conformity of execution spaces

* ``OpenMP::is_asynchronous(OpenMP const& = OpenMP())``
* replacement: none
* unused, conformity of execution spaces

* ``atomic_query_version``
* replacement: none
* no known use case

* ``atomic_assign``
* replacement: ``atomic_store``
* duplicated functionality

* ``atomic_increment``
* replacement: ``atoimc_inc``
* duplicated functionality

* ``atomic_decremnent``
* replacement: ``atomic_dec``
* duplicated functionality

* ``atomic_compare_exchange_strong``
* replacement: ``atomic_compare_exchange``
* duplicated functionality

Deprecated in Kokkos 4.4
---------------------------

* ``is_layouttiled``
* replacement: none
* unused

* ``layout_iterate_type_selector``
* replacement: none
* only useful internally

* ``Array<T, N, Proxy>``
* replacement: none
* alignment with std::array

* ``HPX::HPX(instance_mode mode)``
* replacement: ``explicit HPX(instance_mode mode)``
* execution space instance constructors should be ``explicit``

* ``HPX::HPX(hpx::execution::experimental::unique_any_sender<> &&sender)``
* replacement: ``explicit HPX::HPX(hpx::execution::experimental::unique_any_sender<> &&sender)``
* execution space instance constructors should be ``explicit``

* ``OpenMP::OpenMP(int pool_size)``
* replacement: ``explicit OpenMP::OpenMP(int pool_size)``
* execution space instance constructors should be ``explicit``

* ``Serial::Serial(NewInstance)``
* replacement: ``explicit Serial::Serial(NewInstance)``
* execution space instance constructors should be ``explicit``

* ``ChunkSize::ChunkSize(int value)``
* replacement: ``explicit ChunkSize::ChunkSize(int value)``
* ``ChunkSize`` ahould be constructed explicitly

* ``pair<T, void>``
* replacement: none
* the specialization is not documented, does not follow the standard library, it is not tested and has no known usage


Deprecated in Kokkos 4.3
---------------------------

* ``Experimental::swap``
* replacement: ``kokkos_swap``
* avoiding ambiguities due to ADL

* ``ExecutionSpace::in_parallel``
* replacement: ``KOKKOS_IF_ON_HOST``/``KOKKOS_IF_ON_DEVICE`` partly provide similar behavior
* inconsistent implementation, limited use

* ``Cuda::device_arch()``
* replacement: none
* uniformity between execution spaces

* ``Cuda::detect_device_count()``
* replacement: num_devices()
* uniformity between execution spaces

* ``Cuda::detect_device_arch()``
* replacement: none
* uniformity between execution spaces

* ``HIP::HIP::detect_device_count()``
* replacement: ``num_devices()``
* uniformity between execution spaces

* ``RangePolicy::set(ChunkSize chunksize)``
* replacement: ``RangePolicy::set_chunk_size(int chunk_size)``
* ``ChunkSize`` was the only extra parameter usable with ``RangePolicy::set()``

* ``InitializationSettings::set_num_devices``, ``InitializationSettings::has_num_devices``, ``InitializationSettings::get_num_devices``
* replacement: ``num_devices``
* changes in `InitializationSettings` made these superfluous

* ``InitializationSettings::set_skip_devices``, ``InitializationSettings::has_skip_devices``, ``InitializationSettings::get_skip_devices``
* replacement: ``KOKKOS_VISIBLE_DEVICES``
* changes in `InitializationSettings` made these superfluous


Deprecated in Kokkos 4.2
---------------------------

* ``Cuda::Cuda(cudaStream_t stream, bool manage_stream)``
* replacement: ``Cuda::Cuda(cudaStream_t stream)``
* constructing a Cuda execution space instance should always use an externally managed ``cudaStream`` object

* ``HIP::HIP(hipStream_t stream, bool manage_stream)``
* replacement ``HIP::HIP(hipStream_t stream)``
* constructing a HIP execution space instance should always use an externally managed ``hipStream`` object

* ``vector``
* replacement: none
* non-standard behavior, doesn't work well with Kokkos concepts

* ``HostSpace::HostSpace(AllocationMechanism)``
* replacement: ``HostSpace::HostSpoace()``
* ``AllocationMechanism`` is unused, ``operator new`` with alignment is used unconditionally

* SIMD math functions in the ``Kokkos::Experimental`` namespace
* replacement: SIMD math function in the ``Kokkos`` namespace
* issues with ADL, consistency with other math function overloads


Deprecated in Kokkos 4.1
---------------------------

* Default constructor for ``BinSort``, ``BinOp1D``, and ``BinOp3D``
* replacement: none
* the default constructors created invalid, unusable objects

* ``View::Rank``
* replacement: ``View::rank()``
* undocumented, redundant due to existence of ``View::rank()``

* ``View::subview<MemoryTraits>(...)``
* replacement: ``View::subview(...)``
* not useful, unused


Deprecated in Kokkos 4.0
---------------------------

* ``CudaUVMSpace::available()``
* replacement: ``SharedSpace``
* not portable, would always return ``true``

* ``Complex`` ``volatile`` overloads
* replacement: none
* no need for using ``volatile`` overloads

* ``pair`` ``volatile`` overloads
* replacement: none
* no need for using ``volatile`` overloads

* ``ScratchMemorySpace::align(const IntType& size)``
* replacement: none
* unused, not useful


Deprecated in Kokkos-3.x
===========================



Expand Down

0 comments on commit 6d2f2d0

Please sign in to comment.