Libcudacxx Versions Save

[ARCHIVED] The C++ Standard Library for your entire system. See https://github.com/NVIDIA/cccl

2.1.0

1 year ago

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 and 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). In the near future, before the next release, we plan to merge the three libraries into a single monorepository at 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.
  • #393: Update copyright on several headers.
  • #394: Fix cuda::std::chrono on nvc++.
  • #396: Fix possible reinclude issue, add SM_89 to arch detection.
  • #395: Revert changes made to several tests in #393.
  • #399: Revert a few more changes from #393.

1.9.0-rc1

1 year ago

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

  • #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

  • #280: NVHPC: Disable <nv/target> 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.

1.9.0

1 year ago

libcu++ 1.9.0 (CUDA Toolkit 12.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

  • #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

  • #280: NVHPC: Disable <nv/target> 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.

1.8.1

2 years ago

libcu++ 1.8.1 (CUDA Toolkit 11.8)

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

  • #275: Fixes long double warnings in <cuda/std/cmath>.
  • #274: Fixes multiple definition errors.
    • Thanks Gonzalo Brito for this contribution.
  • #273: Fixes pedantic build warnings on IBM's xlc.
  • #271: Changes XFAIL state for CTAD tests on clang.
  • #266: Fix typo leading to broken link.
    • Thanks Daniel Lustig for this contribution.
  • #269: Fix several MSVC Test failures.
  • #268: Remove NVIDIA internal paths from CMake includes.
  • #265: Move pipeline into libcudacxx. Previously was a seperate 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 documenation's search text field.
    • Thanks Bradley Dice for this contribution.
  • #259: Add system_header pragma to portions of <nv/target>
  • #249: Documentation update for building libcudacxx.
  • #247: Update godbolt links in examples.
    • Thanks Asher Mancinelli for this contribution.

1.8.1-rc3

2 years ago

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

  • #275: Fixes long double warnings in <cuda/std/cmath>.
  • #274: Fixes multiple definition errors.
    • Thanks Gonzalo Brito for this contribution.
  • #273: Fixes pedantic build warnings on IBM's xlc.
  • #271: Changes XFAIL state for CTAD tests on clang.
  • #266: Fix typo leading to broken link.
    • Thanks Daniel Lustig for this contribution.
  • #269: Fix several MSVC Test failures.
  • #268: Remove NVIDIA internal paths from CMake includes.
  • #265: Move pipeline into libcudacxx. Previously was a seperate 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 documenation's search text field.
    • Thanks Bradley Dice for this contribution.
  • #259: Add system_header pragma to portions of <nv/target>
  • #249: Documentation update for building libcudacxx.
  • #247: Update godbolt links in examples.
    • Thanks Asher Mancinelli for this contribution.

1.8.1-rc1

2 years ago

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

  • #268: Remove NVIDIA internal paths from CMake includes.
  • #265: Move pipeline into libcudacxx. Previously was a seperate 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 documenation's search text field.
    • Thanks Bradley Dice for this contribution.
  • #259: Add system_header pragma to portions of <nv/target>
  • #249: Documentation update for building libcudacxx.
  • #247: Update godbolt links in examples.
    • Thanks Asher Mancinelli for this contribution.

1.8.0-rc2

2 years ago

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

  • #237: Add <cuda/std/bit> and enable backports to C++11.
  • #243: Add <cuda/std/array> and <cuda/std/iterator>.

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.

1.8.0-rc1

2 years ago

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

  • #237: Add <cuda/std/bit> and enable backports to C++11.
  • #243: Add <cuda/std/array> and <cuda/std/iterator>.

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.

1.8.0-post-release

2 years ago

libcu++ 1.8.0 (CUDA Toolkit 11.7)

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

  • #237: Add <cuda/std/bit> and enable backports to C++11.
  • #243: Add <cuda/std/array> and <cuda/std/iterator>.

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.

1.8.0

2 years ago

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

  • #237: Add <cuda/std/bit> and enable backports to C++11.
  • #243: Add <cuda/std/array> and <cuda/std/iterator>.

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.