[Tile] Mark all atomics functions as __host__ __device__ only - #10543
Conversation
📝 WalkthroughSummary by CodeRabbit
WalkthroughChangesAtomic host-device enablement
Possibly related PRs
Suggested reviewers: ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
libcudacxx/test/libcudacxx/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp (1)
33-33: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winsuggestion: Rename the touched helpers and constant to snake_case.
checkAlwaysLockFree,checkLongLongTypes,getSizeOf, andExpectLockFreeviolate the repository rule for non-CUB C++ symbols. Rename them and update their call sites inrun().As per coding guidelines, use snake_case for all other C++ symbols.
Also applies to: 55-55, 64-66, 73-79
Source: Coding guidelines
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: dd3221ad-d2ee-4c95-be7f-daa93ed59928
📒 Files selected for processing (152)
libcudacxx/include/cuda/std/atomiclibcudacxx/test/libcudacxx/cuda/atomics/atomic.ext/atomic_fetch_half.fail.cpplibcudacxx/test/libcudacxx/cuda/atomics/atomic.ext/atomic_fetch_max.pass.cpplibcudacxx/test/libcudacxx/cuda/atomics/atomic.ext/atomic_fetch_min.pass.cpplibcudacxx/test/libcudacxx/cuda/atomics/atomic.ext/atomic_helpers.hlibcudacxx/test/libcudacxx/cuda/atomics/atomic.local.pass.cpplibcudacxx/test/libcudacxx/cuda/atomics/atomic.uninitialized.pass.cpplibcudacxx/test/libcudacxx/cuda/atomics/atomic_16b_host_constructible.pass.cpplibcudacxx/test/libcudacxx/cuda/atomics/atomic_16b_host_no_override.fail.cpplibcudacxx/test/libcudacxx/cuda/atomics/atomic_16b_ld_st.pass.cpplibcudacxx/test/libcudacxx/cuda/atomics/atomic_ref_small.pass.cpplibcudacxx/test/libcudacxx/cuda/atomics/bad_atomic_alignment.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/large_type.hlibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_arrive_on.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_divergent_threads.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_group_concept.hlibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_group_concept_thread_scope_block.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_group_concept_thread_scope_device.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_group_concept_thread_scope_system.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_producer_consumer.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_block_16.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_block_32.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_block_64.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_block_8.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_block_large_type.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_device_16.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_device_32.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_device_64.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_device_8.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_device_large_type.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_generic.hlibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_system_16.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_system_32.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_system_64.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_system_8.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_system_large_type.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_thread.hlibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_thread_16.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_thread_32.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_thread_8.pass.cpplibcudacxx/test/libcudacxx/cuda/pipeline/pipeline_memcpy_async_thread_scope_thread_large_type.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/atomic_cuda_float.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/atomic_cuda_generic.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/atomic_cuda_signed.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/atomic_cuda_unsigned.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/atomic_std_float.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/atomic_std_generic.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/atomic_std_signed.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/atomic_std_unsigned.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/common.hlibcudacxx/test/libcudacxx/heterogeneous/atomic/flag.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/reference_cuda.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/atomic/reference_std.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/barrier.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/barrier_parity.cuda.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/barrier_parity.std.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/helpers.hlibcudacxx/test/libcudacxx/heterogeneous/latch.pass.cpplibcudacxx/test/libcudacxx/heterogeneous/semaphore.pass.cpplibcudacxx/test/libcudacxx/libcxx/atomics/atomics.flag/init_bool.pass.cpplibcudacxx/test/libcudacxx/libcxx/atomics/diagnose_invalid_memory_order.fail.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.fences/atomic_signal_fence.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.fences/atomic_thread_fence.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.flag/atomic_flag_clear.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.flag/atomic_flag_clear_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.flag/atomic_flag_test_and_set.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.flag/atomic_flag_test_and_set_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.flag/atomic_flag_wait.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.flag/clear.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.flag/default.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.flag/test_and_set.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.general/replace_failure_order.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.lockfree/lockfree.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.order/kill_dependency.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.order/memory_order.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/address.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/address_ref.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/address_ref_constness.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/atomic_copyable.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/atomic_ref_address.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/bool.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/cstdint_typedefs.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/enum_class.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/floating_point.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/floating_point_ref.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/floating_point_ref_constness.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/16b_integral_ref.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/1b_integral_cuda.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/1b_integral_std.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/2b_integral_cuda.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/2b_integral_std.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/4b_integral_cuda.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/4b_integral_std.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/8b_integral_cuda.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/8b_integral_std.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/common.hlibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/integral_ref.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral/integral_ref_constness.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/integral_typedefs.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/non_arithmetic.fail.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/non_trivial.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/supported_sizes.fail.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/supported_sizes.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/trivially_copyable.fail.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/trivially_copyable.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.generic/trivially_copyable_ref.fail.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_and.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_and_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_or.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_or_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_xor.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_xor_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_helpers.hlibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_is_lock_free.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.req/ctor.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_ref_member_wait.pass.cpplibcudacxx/test/libcudacxx/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.barrier/arrive.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.barrier/arrive_and_drop.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.barrier/arrive_and_wait.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.barrier/completion.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.barrier/try_wait_for.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.barrier/try_wait_parity_for.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.barrier/try_wait_parity_until.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.barrier/try_wait_until.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.latch/arrive_and_wait.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.latch/count_down.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.latch/try_wait.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.semaphore/acquire.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.semaphore/release.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.semaphore/timed.pass.cpplibcudacxx/test/libcudacxx/std/thread/thread.semaphore/try_acquire.pass.cpplibcudacxx/test/support/cmpxchg_loop.hlibcudacxx/test/support/concurrent_agents.hlibcudacxx/test/support/cuda_space_selector.hlibcudacxx/test/support/test_macros.h
|
pre-commit.ci autofix |
🥳 CI Workflow Results🟩 Finished in 5h 04m: Pass: 100%/115 | Total: 4d 19h | Max: 4h 33m | Hits: 51%/1121303See results here. |
Our atomics implementation is based on PTX which is not usable in a tile context