This repository was archived by the owner on Mar 21, 2024. It is now read-only.
Thrust 2.0.0 #1767
alliepiper
announced in
Announcements
Thrust 2.0.0
#1767
Replies: 1 comment
-
|
Thank you! This library is a joy to use. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
The Thrust 2.0.0 major release adds a dependency on libcu++ and contains several breaking changes. These include new diagnostics when inspecting device-only lambdas from the host, removal of the
cubsymlink in the Thrust repository root, and removal of the deprecatedTHRUST_*_BACKENDmacros. It also includes several minor bugfixes and cleanups.Breaking Changes
NV_IF_TARGETports. #1605: Add libcu++ dependency.${THRUST_ROOT}/dependencies/libcudacxx/submodule.-I ${THRUST_ROOT}/dependencies/libcudacxx/include/).NV_IF_TARGETports. #1605: The following macros are no longer defined by default. They can be re-enabled by definingTHRUST_PROVIDE_LEGACY_ARCH_MACROS. These will be removed completely in a future release.THRUST_IS_HOST_CODE: Replace withNV_IF_TARGET.THRUST_IS_DEVICE_CODE: Replace withNV_IF_TARGET.THRUST_INCLUDE_HOST_CODE: Replace withNV_IF_TARGET.THRUST_INCLUDE_DEVICE_CODE: Replace withNV_IF_TARGET.THRUST_DEVICE_CODE: Replace withNV_IF_TARGET.NV_IF_TARGET. They are now defined consistently across all host/device compilation passes. This should not affect most usages of these macros, but may require changes for some edge cases.THRUST_RUNTIME_FUNCTION: Execution space annotations for functions that invoke CUDA Runtime APIs.__host__ __device____host__ __device____host____host__ __device____host____THRUST_HAS_CUDART__: No change in behavior, but no longer used in Thrust. Provided for legacy support only. Legacy behavior:THRUST_RDC_ENABLED: New macro, may be combined withNV_IF_TARGETto replace most usages of__THRUST_HAS_CUDART__. Behavior:cubsymlink. #1701: Remove thecubsymlink from the root of the Thrust repository.-I ${THRUST_ROOT}/dependencies/cub).add_subdirectory, orfind_packageare not affected.__device__-only lambda’s return type is queried from host code (requires libcu++ ≥ 1.9.0).__device__-only implementation ofoperator().__host__ __device__lambda.cuda::proclaim_return_type(Added in libcu++ 1.9.0)THRUST_DEVICE_BACKENDandTHRUST_HOST_BACKENDmacros. TheTHRUST_DEVICE_SYSTEMandTHRUST_HOST_SYSTEMmacros should be used instead.Bug Fixes
NV_IF_TARGETports. #1605: Fix some execution space warnings in the allocator library.eval_ifbranch in iterator_category_to_traversal.h metafunctions #1683: Fix bug initerator_category_to_traversalmetafunctions.__thrust_exec_check_disable__annotation tothrust::make_zip_function. Thanks to @mfbalin for this contribution.copy_iffor output iterators that don’t support copy assignment. Thanks for @mfbalin for this contribution.Other Enhancements
NV_IF_TARGETports. #1605: Removed special case code for unsupported CUDA architectures.NV_IF_TARGETports. #1605: Replace several usages of__CUDA_ARCH__with<nv/target>to handle host/device code divergence.This discussion was created from the release Thrust 2.0.0.
Beta Was this translation helpful? Give feedback.
All reactions