Files
TheRock/math-libs/libhipcxx/docs/libcudacxx/releases/changelog.rst
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

673 lines
22 KiB
ReStructuredText

.. _libcudacxx-releases-changelog:
Changelog
=========
libcu++ 2.1.0
-------------
Adds ``<cuda/std/span>``, ``<cuda/std/mdspan>``, and
``<cuda/std/concepts>`` to libcu++.
We are excited to announce the release of libcudacxx 2.1. While there
are no breaking changes in this release, we are increasing the semantic
major version to better synchronize our release versions with
`Thrust <https://github.com/NVIDIA/thrust>`_ and
`CUB <https://github.com/NVIDIA/cub>`_ repositories. This effort aims
to better unify our libraries, and ensure that users can more easily
determine which versions of each library are compatible with one
another. We are making this change because we want to start thinking
about these three projects not as independent libraries, but as three
parts of a single, `Core CUDA C++ Library
(CCCL) <https://github.com/NVIDIA/cccl>`_. In the near future, before
the next release, we plan to merge the three libraries into a single
monorepository at `nvidia/cccl <https://github.com/NVIDIA/cccl>`_. We
believe that this consolidation will make it even easier for users to
take advantage of the powerful features and optimizations available in
our CUDA libraries.
In an effort to modernize our codebase and introduce new features, we
have consolidated the list of supported compilers. For 2.1.0 we support
as host compilers the GNU Compiler Collection (gcc) down to version
``7.5`` and LLVMs clang down to version ``7.1.0``.
Supported ABI Versions: 4 (default), 3, and 2.
New Features
~~~~~~~~~~~~
- #313: Add ``cuda/std/span`` and backport it to C++14
- #299: Add ``cuda/std/mdspan`` and backport it to C++14.
- Thanks Yu You for this contribution.
- #349: Add ``cuda/std/concepts`` and backport them to C++14. You will
be able to utilize C++20 concepts already in C++14/17 through
existing SFINAE techniques.
- #333: Add support for structured bindings for ``cuda::std::tuple``,
``cuda::std::pair`` and ``cuda::std::array``.
Issues Fixed
~~~~~~~~~~~~
- #328: Docs: Fix broken links.
- Thanks chaosink for this contribution.
- #329: Block local memory tests on pascal.
- #332: Add support for clang-15.
- #317: Fix structured binding support.
- #331: Correct issues with CMake install rules.
- #301: Move and update “memory model” docs.
- #323: Fix broken links in documentation.
- #232: Document ``<nv/target>`` in an example.
- #257: Add documentation for atomic_ref.
- #336: Fetch host ``<utility>`` to populate ``tuple_size``.
- #340: Add tests for host only TUs and fix several found issues.
- #335: Modularize ``<type_traits>``.
- #330: Modularize ``<iterator>``.
- #345: Fix warning about unqualified move.
- #342: Silence deprecation and attribute warnings when building
libcu++.
- #344: Remove invalid qualification of ``initializer_list``.
- #347: Fix errors in atomic with small aggregates and enum classes.
- #352: Make lerp usable on device.
- #346: Add more dialects to host only TU tests.
- #360: Add check for deduction guides macro to
functional/reference_wrapper.h.
- #359: Fix definition of ``disjunction`` for MSVC.
- #364: Split memcpy_async tests into a few other tests.
- #365: Remove gcc-6 from the compose file.
- #350: Modularize ``<utility>``.
- #107: Description of policy for backporting Standard C++ features.
- #128: Fix a typo in the ``cuda::`` heterogeneous policy.
- #369: Fix cuda::atomic_thread_fence example.
- #110: Fixed rename errors.
- #353: Update thread scope for synchronization domains.
- #367: Fix warnings in several headers.
- #379: Update atomics backend to be compatible with ``atomic_ref``.
- #378: Prevent conflict with MSVC macros in 14.35.
- #355: Modularize ``<functional>``.
- #309: Add an experimental ``{async_}resource_ref``.
- #372: Improve handling of internal headers and modularization.
- #383: Fix various issues in CPOs and ``tuple``.
- #386: Fix proclaim_return_type copy constructor.
- #389: Fix atomic_ref example in docs.
- Thanks Daniel Jünger for this contribution.
- #388: Fix ``_EnableConstructor`` in ``cuda::std::tuple`` to be
dependent on a template argument.
- #384: Move the ``unused`` helper function into ``test_macros.h``.
- #391: Fix issues in mdspan found on MSVC.
libcu++ 1.9.0
-------------
Adds ``float`` and ``double`` support to ``cuda::std::atomic`` and
``cuda::atomic``. This release also adds workflows for contributors
based on Docker to improve testing and coverage.
Supported ABI Versions: 4 (default), 3, and 2.
.. _new-features-1:
New Features
~~~~~~~~~~~~
- #286: Add atomics for floating point types.
- Thanks Daniel Jünger for this contribution.
- #284: ``cuda::proclaim_return_type`` for use with extended lambda
support in NVCC.
- #267: Docker refactor, parameterizes OS and compiler versions.
.. _issues-fixed-1:
Issues Fixed
~~~~~~~~~~~~
- #280: NVHPC: Disable macro code paths when compiled without
``-stdpar``.
- #282: Prevent usage of cuda::atomic::fetch_max/min for non-integral
types.
- #288: Fix shortcut in fetch_min CAS loop.
- Thanks Daniel Jünger for this contribution.
- #291: Remove usage of find_path to locate cuda/std/detail/__config.
- Thanks Robert Maynard for this contribution.
- #276: Delete tests for unsupported header ``<compare>``.
- #293: Fix failures in several tests unsupportable by NVRTC.
- #303: Move the emission of atomic errors on unsupported platforms to
``<atomic>``.
- #305: Add workflow to add issues/PRs to Project.
- #314: Remove SM_35 from testing.
- #312: Use escape hook for removal of ``<ciso646>``.
- #310: ``<atomics>`` Remove defaulted copy constructor from
\__cxx_atomic_lock_impl.
- #300: Soundness bugfix for ``barrier<thread_scope_block>`` on sm_70.
- #319: Fix ubuntu18 failing in CI due to missing lit prereqs.
- #318: Fix gcc12 issues.
- #320: Use cache_from to speed up builds if local versions exist.
- #304: Fix ``<chrono>`` and ``<atomic>`` build errors with clang-cuda.
- #324: Also disable tests on ``windows && pre-sm-70``.
libcu++ 1.8.1
-------------
libcu++ 1.8.1 is a minor release. It fixes minor issues in source,
tests, and documentation.
Supported ABI Versions: 4 (default), 3, and 2.
.. _issues-fixed-2:
Issues Fixed
~~~~~~~~~~~~
- #268: Remove NVIDIA internal paths from CMake includes.
- #265: Move pipeline into libcudacxx. Previously was a separate CTK
component.
- #264: Fix builds using NVHPC by adding a new line.
- Thanks Chengjie Wang and Royil Damer for this contribution.
- #261: Fix extra line in perform_tests.bash causing invalid test
results.
- Thanks Chengjie Wang and Royil Damer for this contribution.
- #246: Documentation fixes regarding atomics in GPU memory.
- Thanks Daniel Lustig for this contribution.
- #258: Lock contrast of our documentation's search text field.
- Thanks Bradley Dice for this contribution.
- #259: Add system_header pragma to portions of
- #249: Documentation update for building libcudacxx.
- #247: Update godbolt links in examples.
- Thanks Asher Mancinelli for this contribution.
libcu++ 1.8.0
-------------
libcu++ 1.8.0 is a major release. It adds several ``constexpr`` bit
manipulation functions from C++20's ``<bit>`` to C++11 and up. Also
added is ``cuda::std::array`` providing fixed size arrays and iterators
for both host and device code.
Supported ABI Versions: 4 (default), 3, and 2.
.. _new-features-2:
New Features
~~~~~~~~~~~~
- #237: Add ``<cuda/std/bit>`` and enable backports to C++11.
- #243: Add ``<cuda/std/array>`` and ``<cuda/std/iterator>``.
.. _issues-fixed-3:
Issues Fixed
~~~~~~~~~~~~
- #234: Fix building with GCC/Clang when NVCC was not being used.
- #240: Create a config for lit to generate a JSON output of the build
status.
- Thanks Royil Damer for this contribution.
- #241: Fix octal notation of libcudacxx version number.
- #242: Add support for ``find_package`` and ``add_subdirectory`` in
CMake.
- #244: Merge build system improvements from NVC++ branch.
- #250: Fix pragma typo on MSVC.
- #251: Add several new compilers versions to our docker suite.
- #252: Fix several deprecations in Clang 13.
- #253: Fix truncations and warnings in numerics.
- #254: Fix warnings in ``<array>`` tests and move ``__cuda_std__``
escapes in ``<algorithm>``
- #255: Fix deprecated copy ctor warnings in ``__annotated_ptr`` for
Clang 13.
- #256: Fix SM detection in the ``perform_tests`` script.
libcu++ 1.7.0
-------------
libcu++ 1.7.0 is a major release. It adds ``cuda::std::atomic_ref`` for
integral types. ``cuda::std::atomic_ref`` may potentially replace uses
of CUDA specific ``atomicOperator(_Scope)`` calls and provides a
singular API for host and device code.
Supported ABI Versions: 4 (default), 3, and 2.
.. _new-features-3:
New Features
~~~~~~~~~~~~
- #203 Implements ``cuda::std::atomic_ref`` for integral types.
.. _issues-fixed-4:
Issues Fixed
~~~~~~~~~~~~
- #204: Fallback macro backend in ``<nv/target>`` when C or pre-C++11
dialects are used.
- #206: Fix compilation with ASAN enabled.
- Thanks Janusz Lisiecki for this contribution.
- #207: Fix compilation of ``<cuda/std/atomic>`` for GCC/Clang.
- #208: Flip an internal directory symlink, fixes packaging issues for
internal tools.
- #212: Fix ``<nv/target>`` on MSVC, fallback macros would always
choose pre-C++11 backend.
- #216: Annotated Pointer documentation.
- Thanks Gonzalo Brito for this contribution.
- #215: Add SM87 awareness to ``<nv/target>``.
- #217: Fix how CUDACC version is calculated for ``__int128`` support.
- #228: Fix LLVM lit pattern matching in test score calculation.
- #227: Silence 4296 for type_traits.
- #225: Fix calculation of ``_LIBCUDACXX_CUDACC_VER`` broken from #217.
- Thanks Robert Maynard for this contribution.
- #220: ``memcpy_async`` should cache only in L2 when possible.
- #219: Change ``atomic/atomic_ref`` ctors to prevent copy
construction.
libcu++ 1.6.0 (CUDA Toolkit 11.5)
---------------------------------
libcu++ 1.6.0 is a major release. It changes the default alignment of
``cuda::std::complex`` for better code generation and changes
``cuda::std::atomic`` to use ``<nv/target>`` as the primary dispatch
mechanism.
This release adds ``cuda::annotated_ptr`` and ``cuda::access_property``,
two APIs that allow associating an address space and an explicit caching
policy with a pointer, and the related ``cuda::apply_access_property``,
``cuda::associate_access_property`` and ``cuda::discard_memory`` APIs.
This release introduces ABI version 4, which is now the default.
Supported ABI Versions: 4 (default), 3, and 2.
Included in: CUDA Toolkit 11.5.
.. _issues-fixed-5:
Issues Fixed
~~~~~~~~~~~~
- #197: Rework ``cuda::atomic::fetch_max/min`` so that it is RMW and
actually works.
- #196: Fix missing path host atomic path for NVC++.
- #195: Fix missing ``inline`` specifier on internal atomic functions.
- #194: ``<cuda/std/barrier>`` and ``<cuda/std/atomic>`` failed to
compile with NVRTC.
- #179: Refactors the atomic layer to allow for layering the host
device/host abstractions.
- #189: Changed pragmas for silencing chrono long double warnings.
- #186: Allows ``<nv/target>`` to be used under NVRTC.
- #177: Allows ``<nv/target>`` to build when compiled under C and
C++98.
- Thanks to David Olsen for this contribution.
- #172: Introduces ABI version 4.
- Forces ``cuda::std::complex`` alignment for enhanced performance.
- Sets the internal representation of ``cuda::std::chrono`` literals
to ``double``.
- #165: For tests on some older distributions keep using Python 3, but
downgrade lit.
- #164: Fixes testing issues related to Python 2/3 switch for lit.
- Thanks to Royil Damer for this contribution.
libcu++ 1.5.0 (CUDA Toolkit 11.4)
---------------------------------
libcu++ 1.5.0 is a major release. It adds ``<nv/target>``, the library
support header for the new ``if target`` target specialization
mechanism.
Supported ABI Versions: 3 (default) and 2.
Included in: CUDA Toolkit 11.4.
.. _new-features-4:
New Features
~~~~~~~~~~~~
- ``<nv/target>`` - Portability macros for NVCC/NVC++ and other
compilers.
.. _issues-fixed-6:
Issues Fixed
~~~~~~~~~~~~
- `Documentation <https://nvidia.github.io/libcudacxx>`_: Several typo
fixes.
- #126: Compiler warnings in .
- Thanks to anstellaire for this contribution.
libcu++ 1.4.1 (CUDA Toolkit 11.3)
---------------------------------
libcu++ 1.4.1 is a minor bugfix release.
Supported ABI versions: 3 (default) and 2.
Included in: CUDA Toolkit 11.3.
Other Enhancements
~~~~~~~~~~~~~~~~~~
- `Documentation <https://nvidia.github.io/libcudacxx>`_: Several
enhancements and fixed a few broken links.
- #108: Added ``constexpr`` to synchronization object constructors.
- Thanks to Olivier Giroux for this contribution.
.. _issues-fixed-7:
Issues Fixed
~~~~~~~~~~~~
- #106: Fixed host code atomics on VS 2019 Version 16.5 / MSVC 1925 and
above.
- #101: Fixed ``cuda::std::complex`` for NVRTC.
- #118: Renamed ``__is_convertible``, which NVCC treats as a context
sensitive keyword.
libcu++ 1.4.0
-------------
libcu++ 1.4.0 adds ``<cuda/std/complex>``, NVCC + MSVC support for
``<cuda/std/tuple>``, and backports of C++20 ``<cuda/std/chrono>`` and
C++17 ``<cuda/std/type_traits>`` features to C++14.
Supported ABI versions: 3 (default) and 2.
.. _new-features-5:
New Features
~~~~~~~~~~~~
- #32: ``<cuda/std/complex>``.
- ``long double`` is not supported and disabled when building with
NVCC.
- #34: C++17/20 ``<cuda/std/chrono>`` backported to C++14.
- Thanks to Jake Hemstad and Paul Taylor for this contribution.
- #44: C++17 ``<cuda/std/type_traits>`` backported to C++14.
- Thanks to Jake Hemstad and Paul Taylor for this contribution.
- #66: C++17 ``cuda::std::byte`` (in ``<cuda/std/cstddef>``) backported
to C++14.
- Thanks to Jake Hemstad and Paul Taylor for this contribution.
- #76: C++20 ``cuda::std::is_constant_evaluated`` backported to C++11.
- Thanks to Jake Hemstad and Paul Taylor for this contribution.
.. _other-enhancements-1:
Other Enhancements
~~~~~~~~~~~~~~~~~~
- `Documentation <https://nvidia.github.io/libcudacxx>`_ has been
improved and reorganized.
- #43: Atomics on MSVC have been decoupled from host Standard Library.
- #78: Fixed header licensing.
- #31: Revamped `examples and
benchmarks <https://github.com/NVIDIA/libcudacxx/tree/main/examples>`_.
- Thanks to Jake Hemstad for this contribution.
.. _issues-fixed-8:
Issues Fixed
~~~~~~~~~~~~
- #53, #80, #81: Improved documentation for ``<cuda/pipeline>`` and the
asynchronous operations API.
- #14: NVRTC missing definitions for several macros.
- Thanks to Ben Barsdell for this contribution.
- #56: ``<cuda/std/tuple>`` now works on a set of most recent MSVC
compilers.
- #66, #82: ``<cuda/std/chrono>``/``<cuda/std/type_traits>`` backports.
- Thanks to Jake Hemstad and Paul Taylor for this contribution.
libcu++ 1.3.0 (CUDA Toolkit 11.2)
---------------------------------
libcu++ 1.3.0 adds ``<cuda/std/tuple>`` and ``cuda::std::pair``,
although they are not supported with NVCC + MSVC. It also adds
`documentation <https://nvidia.github.io/libcudacxx>`_.
Supported ABI versions: 3 (default) and 2.
Included in: CUDA Toolkit 11.2.
.. _new-features-6:
New Features
~~~~~~~~~~~~
- #17: ``<cuda/std/tuple>``: ``cuda::std::tuple``, a fixed-size
collection of heterogeneous values. Not supported with NVCC + MSVC.
- #17: ``<cuda/std/utility>``: ``cuda::std::pair``, a collection of two
heterogeneous values. The only ``<cuda/std/utility>`` facilities
supported are ``cuda::std::pair``. Not supported with NVCC + MSVC.
.. _other-enhancements-2:
Other Enhancements
~~~~~~~~~~~~~~~~~~
- `Documentation <https://nvidia.github.io/libcudacxx>`_.
.. _issues-fixed-9:
Issues Fixed
~~~~~~~~~~~~
- #21: Disable ``__builtin_is_constant_evaluated`` usage with NVCC in
C++11 mode because it's broken.
- #25: Fix some declarations/definitions in ``__threading_support``
which have inconsistent qualifiers. Thanks to Gonzalo Brito Gadeschi
for this contribution.
libcu++ 1.2.0 (CUDA Toolkit 11.1)
---------------------------------
libcu++ 1.2.0 adds ``<cuda/pipeline>``/``cuda::pipeline``, a facility
for coordinating ``cuda::memcpy_async`` operations. This release
introduces ABI version 3, which is now the default.
Supported ABI versions: 3 (default) and 2.
Included in: CUDA Toolkit 11.1.
ABI Breaking Changes
~~~~~~~~~~~~~~~~~~~~
- ABI version 3 has been introduced and is now the default. A new ABI
version was necessary to improve the performance of
``cuda::[std::]barrier`` by changing its alignment. Users may define
``_LIBCUDACXX_CUDA_ABI_VERSION=2`` before including any libcu++ or
CUDA headers to use ABI version 2, which was the default for the
1.1.0 / CUDA 11.0 release. Both ABI version 3 and ABI version 2 will
be supported until the next major CUDA release.
.. _new-features-7:
New Features
~~~~~~~~~~~~
- ``<cuda/pipeline>``: ``cuda::pipeline``, a facility for coordinating
``cuda::memcpy_async`` operations.
- ``<cuda/std/version>``: API version macros
``_LIBCUDACXX_CUDA_API_VERSION``,
``_LIBCUDACXX_CUDA_API_VERSION_MAJOR``,
``_LIBCUDACXX_CUDA_API_VERSION_MINOR``, and
``_LIBCUDACXX_CUDA_API_VERSION_PATCH``.
- ABI version switching: users can define
``_LIBCUDACXX_CUDA_ABI_VERSION`` to request a particular supported
ABI version. ``_LIBCUDACXX_CUDA_ABI_VERSION_LATEST`` is set to the
latest ABI version, which is always the default.
.. _other-enhancements-3:
Other Enhancements
~~~~~~~~~~~~~~~~~~
- ``<cuda/latch>``/``<cuda/semaphore>``: ``<cuda/*>`` headers added for
``cuda::latch``, ``cuda::counting_semaphore``, and
``cuda::binary_semaphore``. These features were available in prior
releases, but you had to include ``<cuda/std/latch>`` and
``<cuda/std/semaphore>`` to access them.
- NVCC + GCC 10 support.
- NVCC + Clang 10 support.
libcu++ 1.1.0 (CUDA Toolkit 11.0)
---------------------------------
libcu++ 1.1.0 introduces the world's first implementation of the
`Standard C++20 synchronization library <https://wg21.link/P1135>`_:
``<cuda/[std/]barrier>``, ``<cuda/std/latch>``,
``<cuda/std/semaphore>``, ``cuda::[std::]atomic_flag::test``,
``cuda::[std::]atomic::wait``, and ``cuda::[std::]atomic::notify*``. An
extension for managing asynchronous local copies, ``cuda::memcpy_async``
is introduced as well. It also adds ``<cuda/std/chrono>``,
``<cuda/std/ratio>``, and most of ``<cuda/std/functional>``.
Supported ABI versions: 2.
Included in: CUDA Toolkit 11.0.
.. _abi-breaking-changes-1:
ABI Breaking Changes
~~~~~~~~~~~~~~~~~~~~
- ABI version 2 has been introduced and is now the default. A new ABI
version was introduced because it is our policy to do so in every
major CUDA toolkit release. ABI version 1 is no longer supported.
API Breaking Changes
~~~~~~~~~~~~~~~~~~~~
- Atomics on Pascal + Windows are disabled because the platform does
not support them and on this platform the CUDA driver rejects
binaries containing these operations.
.. _new-features-8:
New Features
~~~~~~~~~~~~
- ``<cuda/[std/]barrier>``: C++20's ``cuda::[std::]barrier``, an
asynchronous thread coordination mechanism whose lifetime consists of
a sequence of barrier phases, where each phase allows at most an
expected number of threads to block until the expected number of
threads arrive at the barrier. It is backported to C++11. The
``cuda::barrier`` variant takes an additional ``cuda::thread_scope``
parameter.
- ``<cuda/barrier>``: ``cuda::memcpy_async``, asynchronous local
copies. This facility is NOT for transferring data between threads or
transferring data between host and device; it is not a
``cudaMemcpyAsync`` replacement or abstraction. It uses
``cuda::[std::]barrier``\ s objects to synchronize the copies.
- ``<cuda/std/functional>``: common function objects, such as
``cuda::std::plus``, ``cuda::std::minus``, etc.
``cuda::std::function``, ``cuda::std::bind``, ``cuda::std::hash``,
and ``cuda::std::reference_wrapper`` are omitted.
.. _other-enhancements-4:
Other Enhancements
~~~~~~~~~~~~~~~~~~
- Upgraded to a newer version of upstream libc++.
- Standalone NVRTC support.
- C++17 support.
- NVCC + GCC 9 support.
- NVCC + Clang 9 support.
- Build with warnings-as-errors.
.. _issues-fixed-10:
Issues Fixed
~~~~~~~~~~~~
- Made ``__cuda_memcmp`` inline to fix ODR violations when compiling
multiple translation units.
libcu++ 1.0.0 (CUDA Toolkit 10.2)
---------------------------------
libcu++ 1.0.0 is the first release of libcu++, the C++ Standard Library
for your entire system. It brings C++ atomics to CUDA:
``<cuda/[std/]atomic>``. It also introduces ``<cuda/std/type_traits>``,
``<cuda/std/cassert>``, ``<cuda/std/cfloat>``, ``<cuda/std/cstddef>``,
and ``<cuda/std/cstdint>``.
Supported ABI versions: 1.
Included in: CUDA Toolkit 10.2.
.. _new-features-9:
New Features
~~~~~~~~~~~~
- ``<cuda/[std/]atomic>``:
- ``cuda::thread_scope``: An enumeration that specifies which group
of threads can synchronize with each other using a concurrency
primitive.
- ``cuda::atomic<T, Scope>``: Scoped atomic objects.
- ``cuda::std::atomic<T>``: Atomic objects.
- ``<cuda/std/type_traits>``: Type traits and metaprogramming
facilities.
- ``<cuda/std/cassert>``: ``assert``, an error-reporting mechanism.
- ``<cuda/std/cstddef>``: Builtin fundamental types.
- ``<cuda/std/cstdint>``: Builtin integral types.
- ``<cuda/std/cfloat>``: Builtin floating point types.
Known Issues
~~~~~~~~~~~~
- Due to circumstances beyond our control, the NVIDIA-provided Debian
packages install libcu++ to the wrong path. This makes libcu++
unusable if installed from the NVIDIA-provided Debian packages and
may interfere with the operation of your host C++ Standard Library.