[Tile] Mark alignment helpers as _CCCL_HOST_DEVICE_API#9487
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (7)
OverviewThis PR updates alignment helper functions to use the Changes to Library CodeAlignment helper functions in
mdspan accessor:
Changes to TestsTest annotation updates for Tile compatibility:
Test guard adjustments:
ImpactThe PR maintains the public API signatures and logic of all affected functions while adjusting their compilation context annotations. The changes enable these alignment helpers to be callable from both host and device code, working around the Tile limitation by allowing device compilation paths to proceed with the new attribute marking. WalkthroughSeven memory and alignment library functions transition from ChangesHost+Device API Annotation and Tile Compilation Integration
Suggested reviewers
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
libcudacxx/include/cuda/__memory/ptr_rebind.h (1)
34-34: ⚡ Quick winsuggestion: align the cv-qualified
ptr_rebindoverload annotations with Line 34 so the full overload set has a single callable-context contract and tile diagnostics happen at the same API boundary. As per coding guidelines, “Mark every function with the correct CCCL execution/availability macro … keep annotations consistent with the intended callable contexts.”Source: Coding guidelines
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: ec8ac322-61c3-4c98-b881-96491cb0627a
📒 Files selected for processing (23)
libcudacxx/include/cuda/__memory/align_down.hlibcudacxx/include/cuda/__memory/align_up.hlibcudacxx/include/cuda/__memory/ptr_rebind.hlibcudacxx/include/cuda/std/__mdspan/aligned_accessor.hlibcudacxx/include/cuda/std/__memory/align.hlibcudacxx/include/cuda/std/__memory/assume_aligned.hlibcudacxx/include/cuda/std/__memory/runtime_assume_aligned.hlibcudacxx/test/libcudacxx/cuda/functional/proclaim_return_type.pass.cpplibcudacxx/test/libcudacxx/cuda/memory/align_down.pass.cpplibcudacxx/test/libcudacxx/cuda/memory/align_up.pass.cpplibcudacxx/test/libcudacxx/cuda/memory/ptr_rebind.pass.cpplibcudacxx/test/libcudacxx/libcxx/macros/extended_data_types.fp8.fail.cpplibcudacxx/test/libcudacxx/libcxx/numerics/floating.point/device_fp128_functions.pass.cpplibcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_backward.pass.cpplibcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_n.pass.cpplibcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_rand.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/16b_integral_ref.pass.cpplibcudacxx/test/libcudacxx/std/containers/views/mdspan/mdspan.aligned_accessor/aligned_accessor.pass.cpplibcudacxx/test/libcudacxx/std/text/format/format.fmt.string/ctor.pass.cpplibcudacxx/test/libcudacxx/std/text/format/format.fmt.string/get.pass.cpplibcudacxx/test/libcudacxx/std/utilities/memory/ptr.align/align.pass.cpplibcudacxx/test/libcudacxx/std/utilities/memory/ptr.align/assume_aligned.pass.cpplibcudacxx/test/libcudacxx/std/utilities/memory/ptr.align/assume_aligned.runfail.cpp
Currently tile does not support `__builtin_assume_aligned` Previously we would just disable the whole codepath but with added support for `__builtin_is_constant_evaluated` it became active again. Rather than disabling it for all of CCCL with tile mode, we mark those functions that use the builtin as `_CCCL_HOST_DEVICE`
9508476 to
5dbf44a
Compare
This comment has been minimized.
This comment has been minimized.
it is otherwise not visible
5dbf44a to
41d1720
Compare
🥳 CI Workflow Results🟩 Finished in 1h 51m: Pass: 100%/118 | Total: 1d 08h | Max: 51m 06s | Hits: 100%/338432See results here. |
Currently tile does not support
__builtin_assume_alignedPreviously we would just disable the whole codepath but with added support for
__builtin_is_constant_evaluatedit became active again.