From f39c9593951ca5d8f51f784bee0d4ea4c0a0033a Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Tue, 13 Oct 2026 16:18:46 -0700 Subject: [PATCH 01/17] cuda-core: safe element casts require AnyBitPattern; bool is DeviceCopy DeviceBuffer::cast_elem, DeviceBuffer::cast_chunks, and Tensor::reinterpret reinterpreted device bytes as any element type of the right size and alignment, which let a u8 buffer become a DeviceBuffer or Tensor holding values other than 0 and 1 (#1506). The casts now require bytemuck::AnyBitPattern of their target, so bool is rejected at compile time, and bool implements DeviceCopy: a typed buffer holds valid values by construction, so bool buffers can be allocated, filled, launched, and read back like any other element type. cuda-core re-exports bytemuck, implements Pod for the DType newtypes, and enables half's bytemuck feature for f16 and bf16. The atomic wrappers in cuda-device are not Copy, so they cannot be AnyBitPattern. DeviceBuffer gains wrap_elem and peel_elem, bounded on bytemuck::TransparentWrapper, to view a scalar buffer as its atomic wrapper and back. cuda-device implements TransparentWrapper for its atomic types and Pod for its vector types, and the examples that cast into atomics use the new methods. Every example lock gains the bytemuck dependency of cuda-device. Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- Cargo.lock | 22 ++++ cuda-core/Cargo.toml | 9 +- cuda-core/src/dtype.rs | 22 ++++ cuda-core/src/lib.rs | 4 + cuda-core/src/simt/device_buffer.rs | 116 ++++++++++++++---- .../fail_cast_chunks_bool.rs | 14 +++ .../fail_cast_chunks_bool.stderr | 22 ++++ .../fail_cast_elem_bool.rs | 14 +++ .../fail_cast_elem_bool.stderr | 22 ++++ .../fail_wrap_elem_bool.rs | 14 +++ .../fail_wrap_elem_bool.stderr | 16 +++ .../device_buffer_casts/pass_bounded_casts.rs | 46 +++++++ cuda-core/tests/simt_device_buffer_casts.rs | 21 ++++ cuda-core/tests/simt_device_copy_impls.rs | 14 ++- cuda-oxide/Cargo.lock | 17 +++ cuda-oxide/Cargo.toml | 3 + cuda-oxide/crates/cuda-device/Cargo.toml | 4 + cuda-oxide/crates/cuda-device/src/atomic.rs | 16 +++ cuda-oxide/crates/cuda-device/src/vector.rs | 17 ++- .../cuda-macros/tests/device-only/Cargo.lock | 7 ++ .../examples/abi_hmm/Cargo.lock | 23 ++++ .../examples/addressof_sharedarray/Cargo.lock | 23 ++++ .../examples/aligned_field_loads/Cargo.lock | 23 ++++ .../examples/aligned_field_stores/Cargo.lock | 23 ++++ .../examples/array_constants/Cargo.lock | 23 ++++ .../examples/array_for_loop/Cargo.lock | 23 ++++ .../examples/array_index/Cargo.lock | 23 ++++ .../examples/array_init/Cargo.lock | 23 ++++ .../examples/asin_acos_smoke/Cargo.lock | 23 ++++ .../assume_init_uninhabited_trap/Cargo.lock | 23 ++++ .../examples/async_mlp/Cargo.lock | 23 ++++ .../examples/async_vecadd/Cargo.lock | 23 ++++ .../examples/atomic_f16/Cargo.lock | 23 ++++ .../examples/atomics/Cargo.lock | 23 ++++ .../examples/barrier/Cargo.lock | 23 ++++ .../examples/bf16x2_arith/Cargo.lock | 23 ++++ .../examples/bf16x2_fma/Cargo.lock | 23 ++++ .../examples/bool_phi_cmp/Cargo.lock | 23 ++++ .../examples/carrying_mul_add/Cargo.lock | 23 ++++ .../examples/cast_chunks/Cargo.lock | 23 ++++ .../examples/cast_chunks/src/main.rs | 5 + .../examples/cast_tests/Cargo.lock | 23 ++++ .../examples/cbrt_smoke/Cargo.lock | 23 ++++ .../examples/checked_arith/Cargo.lock | 23 ++++ .../examples/clc/Cargo.lock | 23 ++++ .../examples/cluster/Cargo.lock | 23 ++++ .../examples/compiler_features/Cargo.lock | 23 ++++ .../examples/complex_mul/Cargo.lock | 23 ++++ .../examples/const_aggregate/Cargo.lock | 23 ++++ .../const_bool_dead_branch/Cargo.lock | 23 ++++ .../examples/const_generic/Cargo.lock | 23 ++++ .../examples/const_table_lookup/Cargo.lock | 23 ++++ .../const_tuple_table_lookup/Cargo.lock | 23 ++++ .../constant_index_from_end/Cargo.lock | 23 ++++ .../examples/constant_memory/Cargo.lock | 23 ++++ .../constant_memory_coeffs/Cargo.lock | 23 ++++ .../constant_memory_simple/Cargo.lock | 23 ++++ .../examples/constant_memory_table/Cargo.lock | 23 ++++ .../examples/coop_groups_demo/Cargo.lock | 23 ++++ .../examples/copy_aggregate_borrow/Cargo.lock | 23 ++++ .../examples/copy_nonoverlapping/Cargo.lock | 23 ++++ .../examples/counted_barrier/Cargo.lock | 23 ++++ .../examples/cp_async_small/Cargo.lock | 23 ++++ .../examples/cp_async_zfill/Cargo.lock | 23 ++++ .../cpp_consumes_rust_device/Cargo.lock | 23 ++++ .../examples/cross_crate_embedded/Cargo.lock | 23 ++++ .../examples/cross_crate_kernel/Cargo.lock | 23 ++++ .../cross_crate_merged_symbols/Cargo.lock | 23 ++++ .../examples/cross_crate_recursion/Cargo.lock | 23 ++++ .../examples/cuda_module_contract/Cargo.lock | 23 ++++ .../examples/cuda_module_in_lib/Cargo.lock | 23 ++++ .../examples/cuda_module_nested/Cargo.lock | 23 ++++ .../examples/cutile_inter_kernel/Cargo.lock | 22 ++++ .../examples/cvt_f16x2/Cargo.lock | 23 ++++ .../examples/cvt_packed/Cargo.lock | 23 ++++ .../examples/debug-tests/Cargo.lock | 23 ++++ .../examples/debug/Cargo.lock | 23 ++++ .../examples/debug_pointer_locals/Cargo.lock | 23 ++++ .../examples/device_closures/Cargo.lock | 23 ++++ .../examples/device_ffi_test/Cargo.lock | 23 ++++ .../examples/device_global/Cargo.lock | 23 ++++ .../examples/device_panic_trap/Cargo.lock | 23 ++++ .../disjoint_from_raw_parts/Cargo.lock | 23 ++++ .../examples/disjoint_slice_len/Cargo.lock | 23 ++++ .../examples/dotprod/Cargo.lock | 23 ++++ .../examples/dpx_minmax_chains/Cargo.lock | 23 ++++ .../examples/drop_glue/Cargo.lock | 23 ++++ .../examples/dst_metadata/Cargo.lock | 23 ++++ .../examples/dynamic_smem/Cargo.lock | 23 ++++ .../examples/elect_leader/Cargo.lock | 23 ++++ .../enum_abi_multi_payload/Cargo.lock | 23 ++++ .../examples/enum_array_match/Cargo.lock | 23 ++++ .../enum_constant_provenance/Cargo.lock | 23 ++++ .../examples/enum_payload_addr/Cargo.lock | 23 ++++ .../enum_state_transitions/Cargo.lock | 23 ++++ .../examples/enum_table_lookup/Cargo.lock | 23 ++++ .../examples/error/Cargo.lock | 23 ++++ .../error_enum_bool_payload_addr/Cargo.lock | 23 ++++ .../error_enum_pointer_overlap/Cargo.lock | 23 ++++ .../Cargo.lock | 23 ++++ .../error_generated_intrinsic_abi/Cargo.lock | 23 ++++ .../Cargo.lock | 23 ++++ .../Cargo.lock | 23 ++++ .../Cargo.lock | 23 ++++ .../examples/error_heap_alloc/Cargo.lock | 23 ++++ .../error_host_arch_intrinsic/Cargo.lock | 23 ++++ .../error_host_target_feature/Cargo.lock | 23 ++++ .../error_kernel_shared_param/Cargo.lock | 23 ++++ .../error_missing_device_attr/Cargo.lock | 23 ++++ .../Cargo.lock | 23 ++++ .../examples/ex2_approx_f16/Cargo.lock | 23 ++++ .../examples/exact_div_chunks/Cargo.lock | 23 ++++ .../examples/export_name_policy/Cargo.lock | 23 ++++ .../examples/extern_crate_closure/Cargo.lock | 23 ++++ .../examples/extern_libdevice/Cargo.lock | 23 ++++ .../examples/f16_stress/Cargo.lock | 23 ++++ .../examples/f16x2_arith/Cargo.lock | 23 ++++ .../examples/f32x2_arith/Cargo.lock | 23 ++++ .../examples/fcmp_ne_nan_smoke/Cargo.lock | 23 ++++ .../examples/field_array_assign/Cargo.lock | 23 ++++ .../examples/float_rounding/Cargo.lock | 23 ++++ .../examples/fmaxmin_smoke/Cargo.lock | 23 ++++ .../examples/fn_ptr_naming/Cargo.lock | 23 ++++ .../fp_special_literal_smoke/Cargo.lock | 23 ++++ .../examples/function_item_call/Cargo.lock | 23 ++++ .../examples/future_apis/Cargo.lock | 23 ++++ .../examples/gemm/Cargo.lock | 23 ++++ .../examples/gemm_sol/Cargo.lock | 23 ++++ .../examples/gemm_sol_final/Cargo.lock | 23 ++++ .../examples/gemm_views/Cargo.lock | 23 ++++ .../examples/generated_intrinsics/Cargo.lock | 23 ++++ .../generated_intrinsics_blackwell/Cargo.lock | 23 ++++ .../examples/generated_ldmatrix/Cargo.lock | 23 ++++ .../examples/generic/Cargo.lock | 23 ++++ .../examples/hashmap/Cargo.lock | 23 ++++ .../examples/hashmap/src/main.rs | 2 +- .../examples/hashmap_v2/Cargo.lock | 23 ++++ .../examples/hashmap_v2/src/lib.rs | 4 +- .../examples/hashmap_v3/Cargo.lock | 23 ++++ .../examples/hashmap_v3/src/lib.rs | 8 +- .../examples/hello_constant/Cargo.lock | 23 ++++ .../examples/helper_fn/Cargo.lock | 23 ++++ .../examples/host_closure/Cargo.lock | 23 ++++ .../host_closure_target_feature/Cargo.lock | 23 ++++ .../examples/iket_trace/Cargo.lock | 23 ++++ .../examples/image_convolution/Cargo.lock | 23 ++++ .../examples/index2d_const/Cargo.lock | 23 ++++ .../examples/index_field_assign/Cargo.lock | 23 ++++ .../examples/inline_ptx/Cargo.lock | 23 ++++ .../examples/integer_minmax/Cargo.lock | 23 ++++ .../examples/interior_mutability/Cargo.lock | 23 ++++ .../interop_cubin_identity/Cargo.lock | 22 ++++ .../kernel_reference_validity/Cargo.lock | 23 ++++ .../examples/lanemask_scan/Cargo.lock | 23 ++++ .../examples/legacy_atomic_fadd/Cargo.lock | 23 ++++ .../examples/legacy_atomic_fadd/src/main.rs | 8 +- .../examples/legacy_atomic_rmw_cas/Cargo.lock | 23 ++++ .../legacy_atomic_rmw_cas/src/main.rs | 48 ++++---- .../legacy_nvvm_pointer_shapes/Cargo.lock | 23 ++++ .../examples/libdevice_math/Cargo.lock | 23 ++++ .../examples/libm_math/Cargo.lock | 23 ++++ .../examples/manual_launch_generic/Cargo.lock | 23 ++++ .../manual_launch_libdevice/Cargo.lock | 23 ++++ .../examples/map_sum/Cargo.lock | 23 ++++ .../examples/math_atan/Cargo.lock | 23 ++++ .../examples/math_hyperbolic/Cargo.lock | 23 ++++ .../examples/math_no_mir_inline/Cargo.lock | 23 ++++ .../examples/math_tan/Cargo.lock | 23 ++++ .../examples/mathdx_ffi_test/Cargo.lock | 23 ++++ .../examples/mcast_barrier_test/Cargo.lock | 23 ++++ .../examples/mem_swap/Cargo.lock | 23 ++++ .../mir_projected_call_destination/Cargo.lock | 23 ++++ .../examples/mma_mxf8f6f4/Cargo.lock | 23 ++++ .../examples/ne_bytes_transmute/Cargo.lock | 23 ++++ .../nested_index_assignment/Cargo.lock | 23 ++++ .../examples/numeric_stress/Cargo.lock | 23 ++++ .../examples/nvls_all_reduce/Cargo.lock | 23 ++++ .../examples/option_ref_transmute/Cargo.lock | 23 ++++ .../examples/option_ref_unwrap_or/Cargo.lock | 23 ++++ .../examples/option_unwrap_trap/Cargo.lock | 23 ++++ .../examples/ord_cmp/Cargo.lock | 23 ++++ .../examples/packed_aggregate_abi/Cargo.lock | 23 ++++ .../examples/packed_atomic_add/Cargo.lock | 23 ++++ .../examples/padded_constants/Cargo.lock | 23 ++++ .../examples/partial_warp_reduce/Cargo.lock | 23 ++++ .../examples/pinned_overlap/Cargo.lock | 23 ++++ .../examples/place_read_fallbacks/Cargo.lock | 23 ++++ .../examples/policy_config/Cargo.lock | 23 ++++ .../examples/primitive_stress/Cargo.lock | 23 ++++ .../examples/printf/Cargo.lock | 23 ++++ .../examples/projected_place_read/Cargo.lock | 23 ++++ .../examples/proof_carrying_views/Cargo.lock | 23 ++++ .../examples/ptr_copy/Cargo.lock | 23 ++++ .../examples/ptr_offset_from/Cargo.lock | 23 ++++ .../ptr_without_provenance/Cargo.lock | 23 ++++ .../examples/reborrow/Cargo.lock | 23 ++++ .../examples/redux_f32/Cargo.lock | 23 ++++ .../examples/redux_minmax/Cargo.lock | 23 ++++ .../examples/redux_sum/Cargo.lock | 23 ++++ .../examples/ref_index_projections/Cargo.lock | 23 ++++ .../examples/ref_operand_mul/Cargo.lock | 23 ++++ .../examples/repr_align_block_args/Cargo.lock | 23 ++++ .../examples/repr_transparent_abi/Cargo.lock | 23 ++++ .../examples/repr_u32_enum_stride/Cargo.lock | 23 ++++ .../examples/row_width_slice/Cargo.lock | 23 ++++ .../examples/rustlantis-smoke/Cargo.lock | 23 ++++ .../scoped_atomic_load_store/Cargo.lock | 23 ++++ .../examples/select_unpredictable/Cargo.lock | 23 ++++ .../examples/set_discriminant/Cargo.lock | 23 ++++ .../set_discriminant_niche/Cargo.lock | 23 ++++ .../examples/shared_debug/Cargo.lock | 23 ++++ .../examples/shared_memory_helper/Cargo.lock | 23 ++++ .../examples/shared_ptr_transmute/Cargo.lock | 23 ++++ .../examples/shared_slice_unsize/Cargo.lock | 23 ++++ .../examples/shared_stage_select/Cargo.lock | 23 ++++ .../examples/sharedmem/Cargo.lock | 23 ++++ .../examples/shuffle_64/Cargo.lock | 23 ++++ .../slice_from_raw_parts_cast/Cargo.lock | 23 ++++ .../examples/slice_get_mut/Cargo.lock | 23 ++++ .../slice_index_bounds_check/Cargo.lock | 23 ++++ .../examples/slice_iterators/Cargo.lock | 23 ++++ .../examples/slice_reslice/Cargo.lock | 23 ++++ .../examples/small_type_ffi_test/Cargo.lock | 23 ++++ .../examples/sparse_mma_fp8/Cargo.lock | 23 ++++ .../sparse_mma_ordered_float/Cargo.lock | 23 ++++ .../examples/split_at_mut/Cargo.lock | 23 ++++ .../examples/standalone_device_fn/Cargo.lock | 23 ++++ .../examples/static_slice_addend/Cargo.lock | 23 ++++ .../examples/static_slice_unsize/Cargo.lock | 23 ++++ .../examples/step_by/Cargo.lock | 23 ++++ .../struct_constant_provenance/Cargo.lock | 23 ++++ .../examples/struct_field_layout/Cargo.lock | 23 ++++ .../examples/subslice_projection/Cargo.lock | 23 ++++ .../examples/switchint_128bit/Cargo.lock | 23 ++++ .../examples/swizzle_smem/Cargo.lock | 23 ++++ .../examples/tcgen05/Cargo.lock | 23 ++++ .../examples/tcgen05_matmul/Cargo.lock | 23 ++++ .../examples/thread_runs/Cargo.lock | 23 ++++ .../examples/tiled_gemm/Cargo.lock | 23 ++++ .../examples/tma_copy/Cargo.lock | 23 ++++ .../examples/tma_multicast/Cargo.lock | 23 ++++ .../toolchain_pairing_smoke/Cargo.lock | 23 ++++ .../transmute_scalar_struct/Cargo.lock | 23 ++++ .../tuple_array_provenance/Cargo.lock | 23 ++++ .../tuple_constant_provenance/Cargo.lock | 23 ++++ .../examples/tuple_field_lookup/Cargo.lock | 23 ++++ .../examples/tuple_return/Cargo.lock | 23 ++++ .../examples/unaligned_memory/Cargo.lock | 23 ++++ .../examples/unchecked_indexing/Cargo.lock | 23 ++++ .../examples/uninit_const/Cargo.lock | 23 ++++ .../examples/union_aggregate/Cargo.lock | 23 ++++ .../examples/unroll_bounds_check/Cargo.lock | 23 ++++ .../examples/unroll_smoke/Cargo.lock | 23 ++++ .../examples/vecadd/Cargo.lock | 23 ++++ .../examples/vectorization/Cargo.lock | 23 ++++ .../examples/volatile_memory/Cargo.lock | 23 ++++ .../examples/warp_reduce/Cargo.lock | 23 ++++ .../examples/warp_sums/Cargo.lock | 23 ++++ .../examples/wgmma/Cargo.lock | 23 ++++ .../examples/wgmma_mma_bf16/Cargo.lock | 23 ++++ cuda-oxide/dependency-licenses.csv | 1 + cutile-rs/CHANGELOG.md | 9 ++ cutile-rs/Cargo.lock | 1 + cutile-rs/cutile-book/reference/host-api.md | 7 +- cutile-rs/cutile/src/tensor.rs | 9 +- cutile-rs/cutile/tests/ui.rs | 3 + cutile-rs/cutile/tests/ui/reinterpret_bool.rs | 16 +++ .../cutile/tests/ui/reinterpret_bool.stderr | 30 +++++ 268 files changed, 5882 insertions(+), 69 deletions(-) create mode 100644 cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.rs create mode 100644 cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr create mode 100644 cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.rs create mode 100644 cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr create mode 100644 cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.rs create mode 100644 cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr create mode 100644 cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs create mode 100644 cuda-core/tests/simt_device_buffer_casts.rs create mode 100644 cutile-rs/cutile/tests/ui/reinterpret_bool.rs create mode 100644 cutile-rs/cutile/tests/ui/reinterpret_bool.stderr diff --git a/Cargo.lock b/Cargo.lock index 427b364038..37b27ab661 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -46,6 +46,26 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cc" version = "1.2.60" @@ -136,6 +156,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -315,6 +336,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-core/Cargo.toml b/cuda-core/Cargo.toml index 8eeb103c93..3ed9d2e517 100644 --- a/cuda-core/Cargo.toml +++ b/cuda-core/Cargo.toml @@ -16,7 +16,14 @@ readme = "README.md" cuda-bindings = { version = "=0.4.0", path = "../cuda-bindings" } cuda-core-derive = { version = "=0.4.0", path = "../cuda-core-derive" } anyhow = "1" -half = { version = "2" } +# `AnyBitPattern` bounds the safe reinterpreting casts on `DeviceBuffer` and +# `TransparentWrapper` is the atomic-slice mapping; both are re-exported at the +# crate root so downstream crates can implement them without a second +# dependency. `min_const_generics` gives `Pod` for arrays of every length. +bytemuck = { version = "1", features = ["min_const_generics"] } +# The `bytemuck` feature makes `f16` and `bf16` `Pod`, so a buffer or tensor +# can be reinterpreted as either of them. +half = { version = "2", features = ["bytemuck"] } oxide-artifacts = { version = "0.2.1", features = ["object-read"] } [dev-dependencies] diff --git a/cuda-core/src/dtype.rs b/cuda-core/src/dtype.rs index 9929a00d28..07cf16a5df 100644 --- a/cuda-core/src/dtype.rs +++ b/cuda-core/src/dtype.rs @@ -126,6 +126,28 @@ impl f4e2m1fnx2 { #[allow(non_camel_case_types)] pub struct i4(pub u8); +// Every bit pattern of the underlying `u8` or `u32` is a valid value of each +// wrapper: the fields are public or reachable through a safe `from_bits`, and +// nothing is reserved. That makes them plain old data in bytemuck's sense, +// which is what lets byte storage be reinterpreted as one of them through +// `DeviceBuffer::cast_elem`, `DeviceBuffer::cast_chunks`, and +// `Tensor::reinterpret`, all bounded on `AnyBitPattern` (#1506). `bool` is +// a `DType` too but deliberately has no such impl: only `0` and `1` are +// valid, so a `bool` buffer or tensor can only come from memory written as +// `bool`. +macro_rules! impl_pod_newtype { + ($($ty:ty),+ $(,)?) => { + $( + // SAFETY: `#[repr(transparent)]` over an integer, so there is no + // padding, and every bit pattern is a valid value (see above). + unsafe impl bytemuck::Zeroable for $ty {} + unsafe impl bytemuck::Pod for $ty {} + )+ + }; +} + +impl_pod_newtype!(tf32, f8e4m3fn, f8e5m2, f8e8m0fnu, f8e5m3fnu, f4e2m1fn, f4e2m1fnx2, i4); + /// Runtime identifier for a `DType`. #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum DTypeId { diff --git a/cuda-core/src/lib.rs b/cuda-core/src/lib.rs index ce2a802e5c..9f14a8f690 100644 --- a/cuda-core/src/lib.rs +++ b/cuda-core/src/lib.rs @@ -16,6 +16,10 @@ pub mod simt; pub mod vmm; pub use api::*; +// `DeviceBuffer::cast_elem`, `cast_chunks`, `wrap_elem`, and `peel_elem` are +// bounded on bytemuck's marker traits. The re-export lets a downstream crate +// implement them for its own element types against the same bytemuck. +pub use bytemuck; pub use cuda_bindings as sys; pub use dtype::*; pub use error::*; diff --git a/cuda-core/src/simt/device_buffer.rs b/cuda-core/src/simt/device_buffer.rs index 9057de9be9..09a82f7a51 100644 --- a/cuda-core/src/simt/device_buffer.rs +++ b/cuda-core/src/simt/device_buffer.rs @@ -33,6 +33,7 @@ use std::mem::MaybeUninit; use std::num::Wrapping; use std::sync::Arc; +use bytemuck::{AnyBitPattern, TransparentWrapper}; use cuda_bindings::CUdeviceptr; use crate::error::DriverError; @@ -50,15 +51,21 @@ use crate::simt::stream::CudaStream; /// /// # Safety /// -/// Implementors must be safe to duplicate with a byte-for-byte copy. Values -/// copied back from device memory must have a bit pattern that is valid for -/// `Self`, and the all-zero bit pattern must also be valid because -/// [`DeviceBuffer::zeroed`] initializes memory with zero bytes. +/// Implementors must be safe to duplicate with a byte-for-byte copy, and the +/// all-zero bit pattern must be a valid value because [`DeviceBuffer::zeroed`] +/// initializes memory with zero bytes. Types whose zero pattern is invalid, +/// such as `NonZeroU32`, cannot implement `DeviceCopy`. /// -/// `Copy` alone is not enough: types such as `bool`, `char`, and -/// `NonZeroU32` are `Copy`, but not every byte pattern is a valid value of -/// those types. `DeviceCopy` is the stronger promise required when -/// `DeviceBuffer` turns raw device bytes back into initialized Rust values. +/// `DeviceCopy` does not promise that every bit pattern is valid. `bool` +/// implements it although only `0` and `1` are `bool` values. That is sound +/// because a typed `DeviceBuffer` holds valid `T` values by construction: +/// the safe constructors copy `T` values from the host or write zero bytes, a +/// kernel that writes through `&mut T` writes a `T`, and the raw constructors +/// are `unsafe`, so their caller vouches for the contents. The one place +/// arbitrary bytes could become typed values is the safe reinterpreting casts, +/// [`DeviceBuffer::cast_elem`] and [`DeviceBuffer::cast_chunks`]. They require +/// the target to implement [`bytemuck::AnyBitPattern`], which `bool` does not, +/// so a `DeviceBuffer` can only come from memory written as `bool`. pub unsafe trait DeviceCopy: Copy {} macro_rules! impl_device_copy { @@ -87,6 +94,11 @@ impl_device_copy!( f64 ); +// Zero is `false`, and the trait documentation explains why the `0`/`1` +// validity requirement does not stop `bool` from being `DeviceCopy`. It is not +// `bytemuck::AnyBitPattern`, so the reinterpreting casts cannot produce it. +unsafe impl DeviceCopy for bool {} + unsafe impl DeviceCopy for [T; N] {} unsafe impl DeviceCopy for *const T {} unsafe impl DeviceCopy for *mut T {} @@ -285,33 +297,84 @@ impl DeviceBuffer { /// Reinterpret the element type of this buffer as `A`. /// - /// `A` must have the same size and alignment as `T` (e.g. `A` is - /// `#[repr(transparent)]` over `T`). This is the "atomic-slice launch - /// mapping" for issue #151: allocate and initialize a plain - /// `DeviceBuffer`, then hand it to a kernel that takes - /// `&[DeviceAtomicU64]`. The pointer, length, and bytes are unchanged; - /// only the element type the kernel sees changes to one whose pointee - /// permits shared mutation (so rustc does not mark it `readonly`/`noalias`). + /// `A` must have the same size and alignment as `T`. The pointer, length, + /// and bytes are unchanged; only the element type changes. Element counts + /// are preserved because `size_of::() == size_of::()`. + /// + /// `A: AnyBitPattern` is what makes this safe: every bit pattern is a valid + /// `A`, so no byte written as a `T` can become an invalid `A`. Types with + /// invalid bit patterns, `bool` for one, are rejected at compile time, so a + /// `DeviceBuffer` can only come from memory written as `bool`. + /// + /// Atomic types and other `#[repr(transparent)]` wrappers that are not + /// `Copy` cannot be `AnyBitPattern`; use [`Self::wrap_elem`] and + /// [`Self::peel_elem`] for those. + pub fn cast_elem(self) -> DeviceBuffer { + // SAFETY: every bit pattern is a valid `A`, so the bytes of any `T` + // are valid `A` values; `relabel` checks the layout. + unsafe { self.relabel() } + } + + /// View this buffer through a `#[repr(transparent)]` wrapper of `T`. + /// + /// This is the atomic-slice launch mapping for issue #151: allocate and + /// initialize a plain `DeviceBuffer`, then hand it to a kernel that + /// takes `&[DeviceAtomicU64]`. The pointer, length, and bytes are + /// unchanged; only the element type the kernel sees changes to one whose + /// pointee permits shared mutation, so rustc does not mark the slice + /// `readonly`/`noalias`. /// - /// Element counts are preserved because `size_of::() == size_of::()`. - pub fn cast_elem(self) -> DeviceBuffer { + /// `W: TransparentWrapper` is the soundness argument: the wrapper has + /// the layout and the valid values of `T`, which is what the `bytemuck` + /// contract promises, so relabelling the allocation cannot produce an + /// invalid value. The wrapper need not be `Copy` or `DeviceCopy`; the + /// atomic types are neither. [`Self::peel_elem`] goes back to `T`, for + /// example before [`Self::to_host_vec`]. + pub fn wrap_elem>(self) -> DeviceBuffer { + // SAFETY: `W` is a transparent wrapper of `T`, so every `T` in the + // allocation is a valid `W`; `relabel` checks the layout. + unsafe { self.relabel() } + } + + /// Remove a `#[repr(transparent)]` wrapper from the element type. + /// + /// The inverse of [`Self::wrap_elem`]: `T` must be a `TransparentWrapper` + /// around `I`, so a `DeviceBuffer` peels back to the + /// `DeviceBuffer` it was made from, which can be read on the host. + pub fn peel_elem(self) -> DeviceBuffer + where + T: TransparentWrapper, + { + // SAFETY: `T` is a transparent wrapper of `I`, so every `T` in the + // allocation is a valid `I`; `relabel` checks the layout. + unsafe { self.relabel() } + } + + /// Hand this allocation to a `DeviceBuffer` of the same length. + /// + /// # Safety + /// + /// Every value of `T` in the allocation must also be a valid `A`. The + /// three public casts above each establish that through a trait bound. + unsafe fn relabel(self) -> DeviceBuffer { assert_eq!( std::mem::size_of::(), std::mem::size_of::(), - "cast_elem requires the same element size" + "element casts require the same element size" ); assert_eq!( std::mem::align_of::(), std::mem::align_of::(), - "cast_elem requires the same element alignment" + "element casts require the same element alignment" ); let (ptr, len, ctx, dealloc_stream) = self.into_all_raw_parts(); // SAFETY: `ptr` came from a valid `DeviceBuffer` allocation of `len` // elements; `A` has identical size and alignment, so the same allocation // is a valid `DeviceBuffer` of the same length and the same byte - // extent. Ownership transfers; the original buffer's `Drop` is - // suppressed by `into_all_raw_parts`, and the allocation metadata is - // preserved for the new element type. + // extent, and the caller guarantees the values are valid `A`s. + // Ownership transfers; the original buffer's `Drop` is suppressed by + // `into_all_raw_parts`, and the allocation metadata is preserved for + // the new element type. unsafe { DeviceBuffer::::from_raw_parts_with_dealloc_stream(ptr, len, ctx, dealloc_stream) } @@ -357,7 +420,12 @@ impl DeviceBuffer { /// Returning the original on failure rather than panicking keeps the /// fallback path available, since a caller that cannot widen usually has a /// scalar version to fall back to. - pub fn cast_chunks(self) -> Result, Self> { + /// + /// As with [`Self::cast_elem`], `A: AnyBitPattern` is what makes the + /// reinterpretation safe: every bit pattern is a valid `A`. A host-defined + /// vector element gets there with `unsafe impl bytemuck::Pod` next to its + /// `DeviceCopy` impl. + pub fn cast_chunks(self) -> Result, Self> { let bytes = self.len.saturating_mul(std::mem::size_of::()); let Some(new_len) = chunk_cast_len( bytes, @@ -383,7 +451,7 @@ impl DeviceBuffer { /// For choosing between a wide and a scalar path without consuming the /// buffer to find out. #[must_use] - pub fn can_cast_chunks(&self) -> bool { + pub fn can_cast_chunks(&self) -> bool { let bytes = self.len.saturating_mul(std::mem::size_of::()); chunk_cast_len( bytes, diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.rs b/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.rs new file mode 100644 index 0000000000..a48d819a58 --- /dev/null +++ b/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.rs @@ -0,0 +1,14 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +use cuda_core::DeviceBuffer; + +// The length-adjusting cast has the same bound as `cast_elem`: `u32` words +// must not be regrouped into `bool` bytes. +fn forge(words: DeviceBuffer) -> Result, DeviceBuffer> { + words.cast_chunks() +} + +fn main() { + let _ = forge; +} diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr b/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr new file mode 100644 index 0000000000..6701a8e469 --- /dev/null +++ b/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr @@ -0,0 +1,22 @@ +error[E0277]: the trait bound `bool: AnyBitPattern` is not satisfied + --> tests/device_buffer_casts/fail_cast_chunks_bool.rs:9:11 + | +9 | words.cast_chunks() + | ^^^^^^^^^^^ the trait `Pod` is not implemented for `bool` + | + = help: the following other types implement trait `Pod`: + () + ManuallyDrop + Option + PhantomData + PhantomPinned + Wrapping + [T; N] + __m128 + and $N others + = note: required for `bool` to implement `AnyBitPattern` +note: required by a bound in `DeviceBuffer::::cast_chunks` + --> src/simt/device_buffer.rs + | + | pub fn cast_chunks(self) -> Result, Self> { + | ^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::cast_chunks` diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.rs b/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.rs new file mode 100644 index 0000000000..8ca0408fe7 --- /dev/null +++ b/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.rs @@ -0,0 +1,14 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +use cuda_core::DeviceBuffer; + +// Only 0 and 1 are valid `bool` values, so a byte buffer must not become a +// `DeviceBuffer` through the safe reinterpreting cast. +fn forge(bytes: DeviceBuffer) -> DeviceBuffer { + bytes.cast_elem() +} + +fn main() { + let _ = forge; +} diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr b/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr new file mode 100644 index 0000000000..64b7a30ea1 --- /dev/null +++ b/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr @@ -0,0 +1,22 @@ +error[E0277]: the trait bound `bool: AnyBitPattern` is not satisfied + --> tests/device_buffer_casts/fail_cast_elem_bool.rs:9:11 + | +9 | bytes.cast_elem() + | ^^^^^^^^^ the trait `Pod` is not implemented for `bool` + | + = help: the following other types implement trait `Pod`: + () + ManuallyDrop + Option + PhantomData + PhantomPinned + Wrapping + [T; N] + __m128 + and $N others + = note: required for `bool` to implement `AnyBitPattern` +note: required by a bound in `DeviceBuffer::::cast_elem` + --> src/simt/device_buffer.rs + | + | pub fn cast_elem(self) -> DeviceBuffer { + | ^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::cast_elem` diff --git a/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.rs b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.rs new file mode 100644 index 0000000000..3985499611 --- /dev/null +++ b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.rs @@ -0,0 +1,14 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +use cuda_core::DeviceBuffer; + +// `bool` is not a `TransparentWrapper`, and no downstream crate can make +// it one, so the wrapper path cannot forge a `bool` buffer either. +fn forge(bytes: DeviceBuffer) -> DeviceBuffer { + bytes.wrap_elem() +} + +fn main() { + let _ = forge; +} diff --git a/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr new file mode 100644 index 0000000000..9483b7ee36 --- /dev/null +++ b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr @@ -0,0 +1,16 @@ +error[E0277]: the trait bound `bool: TransparentWrapper` is not satisfied + --> tests/device_buffer_casts/fail_wrap_elem_bool.rs:9:11 + | +9 | bytes.wrap_elem() + | ^^^^^^^^^ the trait `TransparentWrapper` is not implemented for `bool` + | +help: the trait `TransparentWrapper` is implemented for `Wrapping` + --> $CARGO/bytemuck-$VERSION/src/transparent.rs + | + | unsafe impl TransparentWrapper for core::num::Wrapping {} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +note: required by a bound in `DeviceBuffer::::wrap_elem` + --> src/simt/device_buffer.rs + | + | pub fn wrap_elem>(self) -> DeviceBuffer { + | ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::wrap_elem` diff --git a/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs b/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs new file mode 100644 index 0000000000..619281bfd2 --- /dev/null +++ b/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs @@ -0,0 +1,46 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +use std::num::Wrapping; + +use cuda_core::bytemuck::TransparentWrapper; +use cuda_core::DeviceBuffer; + +// A wrapper that is not `Copy`, like the atomic types in cuda-device: it can +// be wrapped and peeled, but not reinterpreted into with `cast_elem`. +#[repr(transparent)] +struct Counter(u32); + +// SAFETY: `#[repr(transparent)]` over `u32` with no other fields. +unsafe impl TransparentWrapper for Counter {} + +// Every bit pattern is a valid `f32`, so bytes written as `u32` are fine. +fn reinterpret(words: DeviceBuffer) -> DeviceBuffer { + words.cast_elem() +} + +// `Wrapping` is `Pod`, so it can be cast into as well as wrapped. +fn reinterpret_wrapping(words: DeviceBuffer) -> DeviceBuffer> { + words.cast_elem() +} + +fn group(floats: DeviceBuffer) -> Result, DeviceBuffer> { + floats.cast_chunks() +} + +fn wrap(words: DeviceBuffer) -> DeviceBuffer { + words.wrap_elem() +} + +fn peel(counters: DeviceBuffer) -> DeviceBuffer { + counters.peel_elem() +} + +fn wrap_std(words: DeviceBuffer) -> DeviceBuffer> { + words.wrap_elem() +} + +fn main() { + // Type-checking is the test; the functions are never called. + let _ = (reinterpret, reinterpret_wrapping, group, wrap, peel, wrap_std); +} diff --git a/cuda-core/tests/simt_device_buffer_casts.rs b/cuda-core/tests/simt_device_buffer_casts.rs new file mode 100644 index 0000000000..1268bc06d4 --- /dev/null +++ b/cuda-core/tests/simt_device_buffer_casts.rs @@ -0,0 +1,21 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +//! The element casts on `DeviceBuffer` must not forge invalid values (#1506). +//! +//! `cast_elem` and `cast_chunks` reinterpret bytes, so their target must be +//! `bytemuck::AnyBitPattern`; `wrap_elem` and `peel_elem` relabel through a +//! `bytemuck::TransparentWrapper`. `bool` is neither, so no safe cast can +//! turn byte storage into a `DeviceBuffer`. These cases only need to +//! compile or fail to compile; none touches a GPU. Regenerate the +//! expectations with `TRYBUILD=overwrite cargo test -p cuda-core --test +//! simt_device_buffer_casts` after an intentional diagnostic change. + +#[test] +fn device_buffer_cast_bounds() { + let t = trybuild::TestCases::new(); + t.pass("tests/device_buffer_casts/pass_bounded_casts.rs"); + t.compile_fail("tests/device_buffer_casts/fail_cast_elem_bool.rs"); + t.compile_fail("tests/device_buffer_casts/fail_cast_chunks_bool.rs"); + t.compile_fail("tests/device_buffer_casts/fail_wrap_elem_bool.rs"); +} diff --git a/cuda-core/tests/simt_device_copy_impls.rs b/cuda-core/tests/simt_device_copy_impls.rs index 2429f7c7ec..e3a3c1980b 100644 --- a/cuda-core/tests/simt_device_copy_impls.rs +++ b/cuda-core/tests/simt_device_copy_impls.rs @@ -25,11 +25,17 @@ fn device_copy_supports_native_f16() { #[test] fn device_copy_covers_core_parity_types() { - // `bool` and `char` are intentionally NOT `DeviceCopy`: they have validity - // holes (only 0/1 for `bool`, only valid Unicode scalars for `char`), so a - // device-written byte outside that set would be UB on readback. Only the - // representation-preserving wrappers below are sound parity additions. + // The representation-preserving wrappers are sound parity additions. assert_device_copy::>(); assert_device_copy::>(); assert_device_copy::>(); } + +#[test] +fn device_copy_supports_bool() { + // `bool` is `DeviceCopy` although only 0 and 1 are valid: a typed buffer + // holds valid values by construction, and the reinterpreting casts that + // could forge a `bool` from arbitrary bytes require `AnyBitPattern`, which + // `bool` does not implement (see tests/device_buffer_casts, #1506). + assert_device_copy::(); +} diff --git a/cuda-oxide/Cargo.lock b/cuda-oxide/Cargo.lock index 5bb9ee62fa..3f0e45c67e 100644 --- a/cuda-oxide/Cargo.lock +++ b/cuda-oxide/Cargo.lock @@ -197,6 +197,20 @@ name = "bytemuck" version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] [[package]] name = "bytes" @@ -402,6 +416,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -421,6 +436,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", "trybuild", ] @@ -762,6 +778,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/Cargo.toml b/cuda-oxide/Cargo.toml index 47a76791fc..fea7c418d5 100644 --- a/cuda-oxide/Cargo.toml +++ b/cuda-oxide/Cargo.toml @@ -104,6 +104,9 @@ ptx-parse = { path = "crates/ptx-parse" } ptx-schedule = { path = "crates/ptx-schedule" } # Common dependencies +# No default features: cuda-device is `no_std` and is compiled for the device, +# and only the marker traits are wanted there, not `std` or the derive macros. +bytemuck = { version = "1", default-features = false } futures = "0.3" thiserror = "2" linkme = "0.3" diff --git a/cuda-oxide/crates/cuda-device/Cargo.toml b/cuda-oxide/crates/cuda-device/Cargo.toml index 00c2a1b1f0..8fb0d8fe2b 100644 --- a/cuda-oxide/crates/cuda-device/Cargo.toml +++ b/cuda-oxide/crates/cuda-device/Cargo.toml @@ -15,6 +15,10 @@ readme = "README.md" # it back on for all of them and defeat the feature. `cuda-host` requests # `host` explicitly, so any build that loads or launches a module still has it. cuda-macros = { workspace = true } +# The atomic types implement `bytemuck::TransparentWrapper` so that cuda-core's +# `DeviceBuffer::wrap_elem` and `peel_elem` accept them. The orphan rule means +# only this crate can write those impls; cuda-core cannot name these types. +bytemuck = { workspace = true } [dev-dependencies] trybuild = "1" diff --git a/cuda-oxide/crates/cuda-device/src/atomic.rs b/cuda-oxide/crates/cuda-device/src/atomic.rs index 7433fec228..eaa35066dc 100644 --- a/cuda-oxide/crates/cuda-device/src/atomic.rs +++ b/cuda-oxide/crates/cuda-device/src/atomic.rs @@ -176,6 +176,14 @@ macro_rules! define_integer_atomic { // All operations go through atomic instructions emitted by the compiler. unsafe impl Sync for $Name {} + // SAFETY: `$Name` is `#[repr(transparent)]` over `UnsafeCell<$ty>`, + // which is itself `#[repr(transparent)]` over `$ty`, with no other + // fields, so it has the layout and the valid values of `$ty`. This + // lets a `DeviceBuffer<$ty>` be viewed as `DeviceBuffer<$Name>` with + // cuda-core's `DeviceBuffer::wrap_elem` and turned back with + // `peel_elem` so the host can read the result. + unsafe impl bytemuck::TransparentWrapper<$ty> for $Name {} + impl $Name { /// Create a new atomic with the given initial value. pub const fn new(val: $ty) -> Self { @@ -372,6 +380,14 @@ macro_rules! define_float_atomic { // All operations go through atomic instructions emitted by the compiler. unsafe impl Sync for $Name {} + // SAFETY: `$Name` is `#[repr(transparent)]` over `UnsafeCell<$ty>`, + // which is itself `#[repr(transparent)]` over `$ty`, with no other + // fields, so it has the layout and the valid values of `$ty`. This + // lets a `DeviceBuffer<$ty>` be viewed as `DeviceBuffer<$Name>` with + // cuda-core's `DeviceBuffer::wrap_elem` and turned back with + // `peel_elem` so the host can read the result. + unsafe impl bytemuck::TransparentWrapper<$ty> for $Name {} + impl $Name { /// Create a new atomic with the given initial value. pub const fn new(val: $ty) -> Self { diff --git a/cuda-oxide/crates/cuda-device/src/vector.rs b/cuda-oxide/crates/cuda-device/src/vector.rs index edb513e6c3..200ba123a7 100644 --- a/cuda-oxide/crates/cuda-device/src/vector.rs +++ b/cuda-oxide/crates/cuda-device/src/vector.rs @@ -67,9 +67,12 @@ //! taking `&[f32]`, and take the view **inside the kernel** with //! [`as_vectors`] / [`as_vectors_mut`]. This needs no host-side type at all. //! - Or reinterpret the flat buffer once at the boundary with `cuda-core`'s -//! `DeviceBuffer::cast_chunks`, using a host-defined `#[repr(C, align(16))]` -//! element that implements `DeviceCopy`, and launch a kernel that takes that -//! element type directly. +//! `DeviceBuffer::cast_chunks`, which requires `bytemuck::AnyBitPattern` of +//! its target. These types implement `bytemuck::Pod`, so +//! `floats.cast_chunks::()` works, and so does a host-defined +//! `#[repr(C, align(16))]` element with its own `Pod` impl. Launch a kernel +//! that takes the vector type directly, and cast back to the scalar type +//! before reading the result on the host. //! //! # Related "N x scalar" types //! @@ -124,6 +127,14 @@ macro_rules! define_vector { const LANES: usize = $lanes; } + // SAFETY: a public array of plain integers or floats whose size equals + // the alignment (checked below), so there is no padding and every bit + // pattern is a valid value. `Pod` is what lets cuda-core's + // `DeviceBuffer::cast_chunks` regroup a flat scalar buffer into this + // type. + unsafe impl bytemuck::Zeroable for $name {} + unsafe impl bytemuck::Pod for $name {} + impl $name { /// Build a vector from its lanes. #[must_use] diff --git a/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock b/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock index f7fdc1eff6..ef118e1a0e 100644 --- a/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock +++ b/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock @@ -2,10 +2,17 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + [[package]] name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock index 1d51a50e54..944b9acf59 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock index b8e441c59e..7f3e003bec 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock index 0b75539022..35bd09ce99 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock index 502e06c899..73b1e80521 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock index 708068528d..c0093b8225 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock index 0c024bb8a5..d05ea10f75 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock index e83e8a8704..f5af99d828 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock index b93c70c05f..38e61e841d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock index 0401eff7d5..8e829f49b8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock index 248ff82b0f..d5dbda4731 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock index 22a8b4bc2c..3729e10174 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock @@ -66,6 +66,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -175,6 +195,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -194,6 +215,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -389,6 +411,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock index 902af286c7..35ae73a1d1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock @@ -66,6 +66,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -175,6 +195,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -194,6 +215,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -389,6 +411,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock index 25e548ea3b..9617c2d4d0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock index 011e726425..f72824e9e6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock index f17829532f..430302b2bd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock index 31c36820b6..abe6ef77f0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock index 4edfd7f252..412d6e6240 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock index 876fb8c273..4bdb273f88 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock @@ -64,6 +64,26 @@ dependencies = [ "cuda-host", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock index c41a3f5c30..58e36fb68f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "carrying_mul_add" version = "0.1.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock index 0476d620a1..f8f316ab95 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cast_chunks" version = "0.2.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/src/main.rs index 72b3ec3e78..80b013c00b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/src/main.rs @@ -28,6 +28,11 @@ pub struct Quad(pub [f32; 4]); // Plain POD aggregate, no pointers: safe to memcpy to/from the device. unsafe impl cuda_core::DeviceCopy for Quad {} +// Four `f32` with no padding: every bit pattern is a valid `Quad`, which is +// what lets `cast_chunks` build one from flat `f32` bytes. +unsafe impl cuda_core::bytemuck::Zeroable for Quad {} +unsafe impl cuda_core::bytemuck::Pod for Quad {} + #[cuda_module] mod kernels { use super::Quad; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock index a885f34945..1ab7155968 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cast_tests" version = "0.1.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock index 6250c3b0b7..cfc34850ad 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cbrt_smoke" version = "0.1.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock index 22a605d5c9..48a44cfd57 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock index 6409d9f788..b0422a1272 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -153,6 +173,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -172,6 +193,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock index 53a895695a..0a5ec917f0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -153,6 +173,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -172,6 +193,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock index 70deb8c7c7..69a81f62cf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -153,6 +173,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -172,6 +193,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock index 60eb1baa31..1a23793e45 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock index 3ef71976cc..d723d47215 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock index 41fabb1728..a9eb33c24e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock index ccc08f96f2..cbb76cefaa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -153,6 +173,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -172,6 +193,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock index 26fb53caca..d9b7a908e3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock index 12a18ab687..3016f8cbee 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock index 4470121240..05203d22a4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock index 6e8890fbf5..a77f8cc476 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock index ac248d8bb3..c031dcd1e2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock index 98e2a8c034..4228b075ad 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock index 7c62ceae52..ddeed74680 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock index dcca83bb32..c4399cc310 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock index fdaba39cbd..fd77301563 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock index e583f5fddb..1fcb3d0300 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock index d6e529758d..b6789fe4da 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock index 0641ecb7ab..468e2fdb4f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock index 19b846ea77..067e8c9a18 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -152,6 +172,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -171,6 +192,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock index 059f389beb..8c8e9d7103 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -151,6 +171,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -170,6 +191,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -262,6 +284,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock index 5d37f456da..2ac8798976 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -153,6 +173,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -172,6 +193,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -273,6 +295,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock index 8aa5c60c45..7d9ef70e12 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -154,6 +174,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -173,6 +194,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -265,6 +287,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock index 7d6afea4d1..44d1845db6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -153,6 +173,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -172,6 +193,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock index 304d4f8738..1b5d4f91a4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -153,6 +173,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -172,6 +193,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock index b7ccbf3cd6..ec322cc011 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock index aedf8ee1f5..cac63fece0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock index 15fa7deaa9..b2840ba3ed 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock index 79a4f6425a..c79b2319a4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock @@ -76,6 +76,26 @@ version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "bytes" version = "1.11.1" @@ -199,6 +219,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -471,6 +492,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock index 41761b8893..3c4ed40092 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock index be34c2de32..c7acbea838 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock index f66d568a2c..f0225f6710 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock index c45afc11ea..3a24960dc6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock index ff0ba980c8..1570ae73ff 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock index fbfc3fe9d0..6a6e8b33e8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock index f9a370b1fd..54c2ef5470 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock index d9f51af73f..fb6669dfb3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock index abbccc4d8d..157f9f1082 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock index 99e58cf0fa..5c8516a170 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock index b57449f344..ef8596ece6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock index 927e35e5b9..f65f09b7e8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock index 3986154648..62227859e2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock index 092d9bad63..fb2797c0bf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock index 663fe0e1e4..a9e8e036e2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock index f1f4b2c026..581b429664 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock index f5ce40a552..9c8ebccd03 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock index 55fa067ced..1448cac081 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock index 34e21c7c8e..f918e912b2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock index 24abb1e836..970d6bae06 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock index 1966983afe..87d04e7f9e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock index 4d1eb8f254..1789b75bdb 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock index 795acb9cd4..4cadb2bb1e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock index ae7af048ac..627cff9c29 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock index c7bd9ac758..537db221af 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock index 5e1649b078..931eaf1969 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock index a8d8bd3db7..f11f8bc5ee 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock index 4d24441cc8..29bb13a30d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -267,6 +289,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock index ac775b6804..5d5a48ea2f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -267,6 +289,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock index a471e93a9f..a2949b07d6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -267,6 +289,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock index 25462fd135..84e3139348 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -267,6 +289,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock index 25827662ff..5737936782 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock index 5319a897c1..84f08f6a77 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock index 360a02431e..3b0b810d60 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock index c04672d297..63f9b73dc9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock index 91997eec33..d20093b2d3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock index 2a2d387203..6344b0effa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock index 2b169c6980..1e8eb4b502 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock index 87a392571e..214173a02c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock index a5cf5dbb4b..b3920bcc30 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock index e45f61411e..bc72d7b112 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock index e35322740d..56b916861b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock index ba6233de9b..83fcf0dda1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock index d3dc0ec184..8baaab10ed 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock index 9df6fbcb48..b1e4e3b749 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock index 472983a662..e6f0a2c8fb 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock index de8cbf89e1..edcf1a28e9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock index 82a53311d6..777524c835 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock index d9f5a36d7b..d945fe088f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock index 81d4b2aeb3..fa0200c103 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock index cc7a0b49d8..d580d7884b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock index 0aecde78e5..eb47aadba3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock index 6acb192412..b0003ffb5e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock index 056047ee7d..00250e1221 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock index 0aa6bf7395..a64e27ad2f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock index 99a1c1c813..eaf6a3e319 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -265,6 +287,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock index 6b48d2b29b..ab433adfb6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -264,6 +286,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock index e965b3570e..e18dfa5745 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -268,6 +290,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock index 65176bc3a3..e27db597d8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -268,6 +290,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock index 0e5a302952..f0970dc71f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -268,6 +290,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock index cf06cdd05d..73eaebfb5e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -263,6 +285,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock index e44dd77b0c..3de9144944 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/src/main.rs index e4984f32f9..3a96e26c2d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/src/main.rs @@ -285,7 +285,7 @@ impl GpuHashMap { // through a shared `&[DeviceAtomicU64]` (issue #151). `DeviceAtomicU64` // is `#[repr(transparent)]` over `u64`, so the pointer, length, and the // `0xFF`-filled bytes are all unchanged. - let slots = slots.cast_elem::(); + let slots = slots.wrap_elem::(); Ok(Self { slots, capacity }) } diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock index 6a872c48e4..78dd79f7d3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock @@ -61,6 +61,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -174,6 +194,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -193,6 +214,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -285,6 +307,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/lib.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/lib.rs index 89e171695e..424e895fdc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/lib.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/lib.rs @@ -1162,8 +1162,8 @@ impl GpuSwissMap { // `&[u32]` / `&[u64]` would be readonly+noalias and writing // through it is UB (issue #151). The memset above is byte-level so // it stays valid across the cast. - let ctrl = ctrl.cast_elem::(); - let slots = slots.cast_elem::(); + let ctrl = ctrl.wrap_elem::(); + let slots = slots.wrap_elem::(); Ok(Self { ctrl, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock index f5ae4facdd..9a3a52cd6e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock @@ -61,6 +61,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -174,6 +194,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -193,6 +214,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -285,6 +307,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/lib.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/lib.rs index bfbb8a00e4..22f0969e7c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/lib.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/lib.rs @@ -1085,8 +1085,8 @@ impl GpuSwissMap { // Reinterpret the allocations as slices of the atomic wrapper // (`#[repr(transparent)]`, identical layout). The memset above // is byte-level so it is unaffected by the element type. - let ctrl = ctrl.cast_elem::(); - let slots = slots.cast_elem::(); + let ctrl = ctrl.wrap_elem::(); + let slots = slots.wrap_elem::(); Ok(Self { ctrl, @@ -1392,8 +1392,8 @@ impl GpuSwissMap { stream.cu_stream(), )?; } - let new_ctrl = new_ctrl.cast_elem::(); - let new_slots = new_slots.cast_elem::(); + let new_ctrl = new_ctrl.wrap_elem::(); + let new_slots = new_slots.wrap_elem::(); let rehash_threads = self.capacity.min(REHASH_MAX_THREADS) as u32; let cfg = LaunchConfig::for_num_elems(rehash_threads); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock index 5279c6e7ef..b3465465d6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock index f6d933ccbc..248872096f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock index 2add398677..10c635b402 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -164,6 +184,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -183,6 +204,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -378,6 +400,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock index df77869652..b76d023fd6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock index 781249726e..d090402f55 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock index 6cb6944b5c..897665293b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock @@ -67,6 +67,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -155,6 +175,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -174,6 +195,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -286,6 +308,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock index 0686ce42dd..01eb3b1888 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock index 34f5c2907d..5ecea578e5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock index ebaeb8b7e0..fa32aa47b8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock index ea07c279ad..de130398c6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock index b9c688b9c5..b08d8e8ae8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock index 8746a26f4b..804e9e4c1f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -132,6 +152,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -207,6 +228,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock index 421a8e618e..9cfeac61a1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -164,6 +184,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -183,6 +204,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -378,6 +400,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock index e0a335f508..d15cc150b3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock index acedcabc8b..2c457965e0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/src/main.rs index 071f388f15..b9fc05e8cf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/src/main.rs @@ -39,8 +39,8 @@ fn main() -> Result<(), Box> { let context = CudaContext::new(0)?; let stream = context.default_stream(); let module = kernels::load(&context)?; - let counter_f32 = DeviceBuffer::::zeroed(&stream, 1)?.cast_elem::(); - let counter_f64 = DeviceBuffer::::zeroed(&stream, 1)?.cast_elem::(); + let counter_f32 = DeviceBuffer::::zeroed(&stream, 1)?.wrap_elem::(); + let counter_f64 = DeviceBuffer::::zeroed(&stream, 1)?.wrap_elem::(); let mut old_values = DeviceBuffer::<(f32, f64)>::zeroed(&stream, N)?; // SAFETY: the launch covers exactly N unique 1D indices, `old_values` has @@ -57,8 +57,8 @@ fn main() -> Result<(), Box> { } stream.synchronize()?; - let got_f32 = counter_f32.cast_elem::().to_host_vec(&stream)?[0]; - let got_f64 = counter_f64.cast_elem::().to_host_vec(&stream)?[0]; + let got_f32 = counter_f32.peel_elem::().to_host_vec(&stream)?[0]; + let got_f64 = counter_f64.peel_elem::().to_host_vec(&stream)?[0]; let old_values = old_values.to_host_vec(&stream)?; let mut old_f32 = old_values .iter() diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock index 904c9c5d51..0281f34581 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/src/main.rs index 8ddb77f31a..be0858fa1a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/src/main.rs @@ -269,8 +269,8 @@ fn main() -> Result<(), Box> { let stream = context.default_stream(); let module = kernels::load(&context)?; - let rmw_u32 = DeviceBuffer::::zeroed(&stream, 1)?.cast_elem::(); - let rmw_u64 = DeviceBuffer::::zeroed(&stream, 1)?.cast_elem::(); + let rmw_u32 = DeviceBuffer::::zeroed(&stream, 1)?.wrap_elem::(); + let rmw_u64 = DeviceBuffer::::zeroed(&stream, 1)?.wrap_elem::(); let mut old_values = DeviceBuffer::<(u32, u64)>::zeroed(&stream, N)?; // SAFETY: the launch covers exactly N unique one-dimensional indices. @@ -287,8 +287,8 @@ fn main() -> Result<(), Box> { } stream.synchronize()?; - let got_u32 = rmw_u32.cast_elem::().to_host_vec(&stream)?[0]; - let got_u64 = rmw_u64.cast_elem::().to_host_vec(&stream)?[0]; + let got_u32 = rmw_u32.peel_elem::().to_host_vec(&stream)?[0]; + let got_u64 = rmw_u64.peel_elem::().to_host_vec(&stream)?[0]; let old_values = old_values.to_host_vec(&stream)?; if got_u32 != N as u32 || got_u64 != N as u64 || !old_values_are_permutations(&old_values) { return Err(format!( @@ -298,8 +298,8 @@ fn main() -> Result<(), Box> { .into()); } - let cas_u32 = DeviceBuffer::from_host(&stream, &[7_u32])?.cast_elem::(); - let cas_u64 = DeviceBuffer::from_host(&stream, &[7_u64])?.cast_elem::(); + let cas_u32 = DeviceBuffer::from_host(&stream, &[7_u32])?.wrap_elem::(); + let cas_u64 = DeviceBuffer::from_host(&stream, &[7_u64])?.wrap_elem::(); let mut observed_u32 = DeviceBuffer::<(u32, u32)>::zeroed(&stream, 1)?; let mut observed_u64 = DeviceBuffer::<(u64, u64)>::zeroed(&stream, 1)?; @@ -319,8 +319,8 @@ fn main() -> Result<(), Box> { let observed_u32 = observed_u32.to_host_vec(&stream)?[0]; let observed_u64 = observed_u64.to_host_vec(&stream)?[0]; - let final_u32 = cas_u32.cast_elem::().to_host_vec(&stream)?[0]; - let final_u64 = cas_u64.cast_elem::().to_host_vec(&stream)?[0]; + let final_u32 = cas_u32.peel_elem::().to_host_vec(&stream)?[0]; + let final_u64 = cas_u64.peel_elem::().to_host_vec(&stream)?[0]; if observed_u32 != (7, 11) || observed_u64 != (7, 11) || final_u32 != 11 || final_u64 != 11 { return Err(format!( "legacy integer CAS mismatch: observed_u32={observed_u32:?}, observed_u64={observed_u64:?}, final_u32={final_u32}, final_u64={final_u64}" @@ -328,10 +328,10 @@ fn main() -> Result<(), Box> { .into()); } - let block_rmw_u32 = DeviceBuffer::::zeroed(&stream, 1)?.cast_elem::(); - let block_rmw_u64 = DeviceBuffer::::zeroed(&stream, 1)?.cast_elem::(); - let system_rmw_u32 = DeviceBuffer::::zeroed(&stream, 1)?.cast_elem::(); - let system_rmw_u64 = DeviceBuffer::::zeroed(&stream, 1)?.cast_elem::(); + let block_rmw_u32 = DeviceBuffer::::zeroed(&stream, 1)?.wrap_elem::(); + let block_rmw_u64 = DeviceBuffer::::zeroed(&stream, 1)?.wrap_elem::(); + let system_rmw_u32 = DeviceBuffer::::zeroed(&stream, 1)?.wrap_elem::(); + let system_rmw_u64 = DeviceBuffer::::zeroed(&stream, 1)?.wrap_elem::(); let mut block_old_values = DeviceBuffer::<(u32, u64)>::zeroed(&stream, N)?; let mut system_old_values = DeviceBuffer::<(u32, u64)>::zeroed(&stream, N)?; let scoped_cfg = LaunchConfig { @@ -358,10 +358,10 @@ fn main() -> Result<(), Box> { } stream.synchronize()?; - let block_final_u32 = block_rmw_u32.cast_elem::().to_host_vec(&stream)?[0]; - let block_final_u64 = block_rmw_u64.cast_elem::().to_host_vec(&stream)?[0]; - let system_final_u32 = system_rmw_u32.cast_elem::().to_host_vec(&stream)?[0]; - let system_final_u64 = system_rmw_u64.cast_elem::().to_host_vec(&stream)?[0]; + let block_final_u32 = block_rmw_u32.peel_elem::().to_host_vec(&stream)?[0]; + let block_final_u64 = block_rmw_u64.peel_elem::().to_host_vec(&stream)?[0]; + let system_final_u32 = system_rmw_u32.peel_elem::().to_host_vec(&stream)?[0]; + let system_final_u64 = system_rmw_u64.peel_elem::().to_host_vec(&stream)?[0]; let block_old_values = block_old_values.to_host_vec(&stream)?; let system_old_values = system_old_values.to_host_vec(&stream)?; if block_final_u32 != N as u32 @@ -379,12 +379,12 @@ fn main() -> Result<(), Box> { .into()); } - let block_cas = DeviceBuffer::from_host(&stream, &[7_u32])?.cast_elem::(); - let system_cas = DeviceBuffer::from_host(&stream, &[7_u32])?.cast_elem::(); + let block_cas = DeviceBuffer::from_host(&stream, &[7_u32])?.wrap_elem::(); + let system_cas = DeviceBuffer::from_host(&stream, &[7_u32])?.wrap_elem::(); let device_strong_cas = - DeviceBuffer::from_host(&stream, &[7_u32])?.cast_elem::(); + DeviceBuffer::from_host(&stream, &[7_u32])?.wrap_elem::(); let device_ordered_cas = - DeviceBuffer::from_host(&stream, &[7_u32])?.cast_elem::(); + DeviceBuffer::from_host(&stream, &[7_u32])?.wrap_elem::(); let mut block_observed = DeviceBuffer::<(u32, u32)>::zeroed(&stream, 1)?; let mut system_observed = DeviceBuffer::<(u32, u32)>::zeroed(&stream, 1)?; let mut device_observed = DeviceBuffer::<(u32, u32)>::zeroed(&stream, 1)?; @@ -413,10 +413,10 @@ fn main() -> Result<(), Box> { let system_observed = system_observed.to_host_vec(&stream)?[0]; let device_observed = device_observed.to_host_vec(&stream)?[0]; let device_ordered_observed = device_ordered_observed.to_host_vec(&stream)?[0]; - let block_cas_final = block_cas.cast_elem::().to_host_vec(&stream)?[0]; - let system_cas_final = system_cas.cast_elem::().to_host_vec(&stream)?[0]; - let device_cas_final = device_strong_cas.cast_elem::().to_host_vec(&stream)?[0]; - let device_ordered_final = device_ordered_cas.cast_elem::().to_host_vec(&stream)?[0]; + let block_cas_final = block_cas.peel_elem::().to_host_vec(&stream)?[0]; + let system_cas_final = system_cas.peel_elem::().to_host_vec(&stream)?[0]; + let device_cas_final = device_strong_cas.peel_elem::().to_host_vec(&stream)?[0]; + let device_ordered_final = device_ordered_cas.peel_elem::().to_host_vec(&stream)?[0]; if block_observed != (7, 11) || system_observed != (7, 11) || device_observed != (7, 11) diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock index 41da688d10..77f65a9af5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock index 285c0c6c88..28ac27561b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock index fe87b406fb..2bdd71d735 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock index 175db3a78e..64e83fc1ef 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock index f402402704..20a82287a9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock index 8c33481722..9e85092551 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock index b60d260cf3..b7f4155b8f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock index bf4fc4cda4..c86079c04c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock index 9cbbb86a02..e7fbb9c284 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock index d32db3b7d9..c353b9a38b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock index 8d14b54b1c..754fad5100 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock @@ -75,6 +75,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -163,6 +183,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -182,6 +203,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -274,6 +296,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock index f8bd26cdd5..5a297bf9a1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock index 9f0b7f6203..875f23fbdb 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock index 3fd8bac65e..0d20d47bcd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock index 1e680c9900..10eac074ff 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock index 978743e322..75f3ce6677 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock index 2be4cddb5c..c19df05411 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock index 3de95b53ce..f649f6b221 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock index 816249364b..2b13125734 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock index 74b48892c7..478a4ec979 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock index 8f05005c91..53a1da5d6c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock index 5dce21dac4..e37f3afbb8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock index 31ced58282..e8edab4dcc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock index 09dddb0199..7b909de909 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock index b3709e011e..c69f96d1c7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock index 393991e170..f64aa579e9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock index ba0ebf3c83..9127cd34b0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock index f819cd7b3b..82e28dc764 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock index 78b2f77a2a..1cd71b9238 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock index 713f0777ab..ba0890b808 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock index c84a6e15e3..cdbb04d6a7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock index a06ac1675b..fe2d0496ee 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock index 88cde29662..90284f42fa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock index 3ec04b9e64..3e1b008ec4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock index 5b4640b69b..c4b9609616 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock index c17c3d7a1c..71e1763cbd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock index b9d72525d5..54a8845baf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock index c6112cebe8..12a0f42bbb 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock index fbe1e8cb36..8e22a6e9f6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock index ecbeeb54f8..f8b5cd0f84 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock index 45927fe620..6c2ecc5aaa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock index 74c888841a..1a3b0f4307 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock index 94d0fa2102..83f9c1af97 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock index 159dcc98f3..6db6ffbcf5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock index 10231a6158..f6f75c55c2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock index c2f3be4056..7d45658fce 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock index 9cf1089479..f05ad0b748 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock index 9d24a6b8d4..22cc69725d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -258,6 +280,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock index 26d379b8e3..b809ca88e5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock index b1cb5d2039..9803bb2f23 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock index a623091819..4d0fb9fbfc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock index 158ecda0ac..85d98c946d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock index b790ed2ca1..3d3cd43ab1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock index 881232eacb..7c437d7a17 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock index 6b72183413..0b2522c1cc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock index 0a11acde77..551e3574e6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock index b3f2de5290..ff4fefd51b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock index e9f87595fa..ab061c3780 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock index 7e138e6546..14ad00a341 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock index 205c918587..bffdb7dcc6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock index 9edf3c367b..6fb174bd70 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock index 5f89a85bdc..c2b5d17c12 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock index a0b6344167..ac15e72e77 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock index 1a2c8f2fad..a501442f26 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock index 4f6f48790e..d6011ad926 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock index 9b2a168a17..b6264e224e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock index 337858588b..dde1aa3d58 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock index 60eb51980e..62b18c6197 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock index bd369b09ad..a2be9ec5d9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock index 651695d697..6aa8732d45 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock index 3b9c78d986..00ab34f240 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock index 8433420962..3e878c2803 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock index 00a570174e..43b384aa37 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock index 3fdd686f8a..c8058695f3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock index b4cc31859f..9232b681ca 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock index 2ce3306137..eb4d430181 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock index 3b56442154..e6b913953a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock index 1f5d931f29..bcfdd7cc20 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock index 8c2269f5d1..1ca0891a08 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock index 34faff57b2..1671608914 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock index 4ba660c11e..81d39f48f4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock index d4c75a0b72..f81d29c09e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock index 7af886b9bc..98acac3cbc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock index d07a8d2fa7..e8a9b9dadc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock index 3c965c977f..e63473b963 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock index ba512ea61c..d22fe7840e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock index a32429c09f..0d6190ee99 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock index 44984c38b3..e76f035d2f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock index ec8eee26e6..a0fe7dc0ce 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock index f063fd2267..5c25b732f1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock index b3ee031b9c..502444796a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock index 0dae26617c..d8b700b7fd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock index 0ff48d9e4c..79e119fda1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock index 5262ec59b0..01b287af20 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock index 8d0cce9016..5819774640 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock index dead9d09ff..de39c13518 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock index 07061c7cb4..c2dc8d1b31 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock index 31a9923785..9bedc629be 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock index 6225903e18..2bab8b786f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock index cfffc70730..297ef36ad1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock index 288c97ac06..45e1ced4d6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock index 2fe046b8aa..50b4580898 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", @@ -162,6 +183,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", ] @@ -254,6 +276,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/dependency-licenses.csv b/cuda-oxide/dependency-licenses.csv index 73c1d5d63e..692dbf8f39 100644 --- a/cuda-oxide/dependency-licenses.csv +++ b/cuda-oxide/dependency-licenses.csv @@ -12,6 +12,7 @@ awint_macro_internals,0.18.1,MIT OR Apache-2.0,Yes,registry+https://github.com/r awint_macros,0.18.1,MIT OR Apache-2.0,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/AaronKutch/awint,Accompanying procedural macros to `awint`, bindgen,0.72.1,BSD-3-Clause,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/rust-lang/rust-bindgen,Automatically generates Rust FFI bindings to C and C++ libraries.,Build-time only: generates FFI bindings for libmathdx-sys. bitflags,2.10.0,MIT OR Apache-2.0,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/bitflags/bitflags,A macro to generate structures which behave like bitflags., +bytemuck,1.25.0,Zlib OR Apache-2.0 OR MIT,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/Lokathor/bytemuck,A crate for mucking around with piles of bytes.,"Marker traits bounding DeviceBuffer's safe element casts in cuda-core (AnyBitPattern, TransparentWrapper); cuda-device implements TransparentWrapper for its atomic types." bytes,1.11.0,MIT,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/tokio-rs/bytes,Types and traits for working with bytes, cargo-oxide,0.2.1,Apache-2.0,Yes,local (workspace),1st Party (workspace),https://github.com/NVlabs/cuda-oxide.git,Cargo subcommand for cuda-oxide: build and run Rust GPU programs, cexpr,0.6.0,Apache-2.0/MIT,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/jethrogb/rust-cexpr,A C expression parser and evaluator, diff --git a/cutile-rs/CHANGELOG.md b/cutile-rs/CHANGELOG.md index 4b7ec6eff9..e0c59ab52a 100644 --- a/cutile-rs/CHANGELOG.md +++ b/cutile-rs/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] +### Fixed + +- `Tensor::reinterpret` requires the target element type to implement + `bytemuck::AnyBitPattern`. Reinterpreting byte storage as `Tensor` + could expose values other than `0` and `1`, which is undefined behavior + when the tensor is read back, and is now a compile error. Numeric element + types, including `f16`, `bf16`, and the FP8 and packed FP4 storage types, + are unaffected (NVIDIA/cuda-rust#1506). + ### Changed - cuTile Rust now lives in the [NVIDIA/cuda-rust](https://github.com/NVIDIA/cuda-rust) diff --git a/cutile-rs/Cargo.lock b/cutile-rs/Cargo.lock index d95ed3effd..9828c2e3e7 100644 --- a/cutile-rs/Cargo.lock +++ b/cutile-rs/Cargo.lock @@ -444,6 +444,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "half", diff --git a/cutile-rs/cutile-book/reference/host-api.md b/cutile-rs/cutile-book/reference/host-api.md index d56cfada89..7b4cfd0d62 100644 --- a/cutile-rs/cutile-book/reference/host-api.md +++ b/cutile-rs/cutile-book/reference/host-api.md @@ -88,7 +88,12 @@ These accessors do not synchronize with the GPU: | `arc_tensor.reinterpret::(&shape)` | Zero-copy reinterpretation as `Arc>` | `reinterpret` requires an `Arc>`, contiguous storage, matching total -byte size, and compatible pointer alignment: +byte size, and compatible pointer alignment. The target type must also +implement `bytemuck::AnyBitPattern` (re-exported as +`cutile::cuda_core::bytemuck`): every bit pattern must be a valid value, so no +byte written as `T` can become an invalid `U`. Every numeric element type +qualifies. `bool` does not, because only `0` and `1` are `bool` values, so a +byte tensor cannot be reinterpreted as `Tensor`. ```rust use cutile::tensor::Tensor; diff --git a/cutile-rs/cutile/src/tensor.rs b/cutile-rs/cutile/src/tensor.rs index 68cf53b8ce..c364ea338d 100644 --- a/cutile-rs/cutile/src/tensor.rs +++ b/cutile-rs/cutile/src/tensor.rs @@ -212,6 +212,7 @@ use cuda_async::device_operation::{ Value, }; use cuda_async::error::DeviceError; +use cuda_core::bytemuck::AnyBitPattern; use cuda_core::sys::CUdeviceptr; use cuda_core::{DType, DTypeId}; use std::fmt::Debug; @@ -1349,7 +1350,13 @@ impl Tensor { /// /// Zero-copy. Returns `Err` if the tensor is not contiguous, the total /// byte size doesn't match, or the pointer alignment is incompatible. - pub fn reinterpret( + /// + /// `U: AnyBitPattern` is what makes the reinterpretation safe: every bit + /// pattern is a valid `U`, so no byte written as a `T` can become an + /// invalid `U`. All numeric element types qualify. `bool` does not, since + /// only `0` and `1` are `bool` values, so a `Tensor` can only come + /// from memory written as `bool`. + pub fn reinterpret( self: &Arc, shape: &[usize], ) -> Result>, Error> { diff --git a/cutile-rs/cutile/tests/ui.rs b/cutile-rs/cutile/tests/ui.rs index 6876a80a9a..b812e1281b 100644 --- a/cutile-rs/cutile/tests/ui.rs +++ b/cutile-rs/cutile/tests/ui.rs @@ -27,4 +27,7 @@ fn ui() { t.compile_fail("tests/ui/entry_non_literal_value.rs"); t.compile_fail("tests/ui/global_*.rs"); t.compile_fail("tests/ui/unordered_partition_requires_unsafe.rs"); + // `Tensor::reinterpret` requires `bytemuck::AnyBitPattern`: a byte tensor + // cannot become a `Tensor`, whose only valid values are 0 and 1. + t.compile_fail("tests/ui/reinterpret_bool.rs"); } diff --git a/cutile-rs/cutile/tests/ui/reinterpret_bool.rs b/cutile-rs/cutile/tests/ui/reinterpret_bool.rs new file mode 100644 index 0000000000..a4eb5c965c --- /dev/null +++ b/cutile-rs/cutile/tests/ui/reinterpret_bool.rs @@ -0,0 +1,16 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +// Only 0 and 1 are valid `bool` values, so a byte tensor must not become a +// `Tensor` through the safe reinterpreting cast: the target type has to +// implement `bytemuck::AnyBitPattern`, and `bool` does not. +use cutile::tensor::Tensor; +use std::sync::Arc; + +fn forge(bytes: Arc>) -> Arc> { + bytes.reinterpret::(&[4]).unwrap() +} + +fn main() { + let _ = forge; +} diff --git a/cutile-rs/cutile/tests/ui/reinterpret_bool.stderr b/cutile-rs/cutile/tests/ui/reinterpret_bool.stderr new file mode 100644 index 0000000000..9fa75b043b --- /dev/null +++ b/cutile-rs/cutile/tests/ui/reinterpret_bool.stderr @@ -0,0 +1,30 @@ +error[E0277]: the trait bound `bool: AnyBitPattern` is not satisfied + --> tests/ui/reinterpret_bool.rs:11:25 + | +11 | bytes.reinterpret::(&[4]).unwrap() + | ----------- ^^^^ the trait `Pod` is not implemented for `bool` + | | + | required by a bound introduced by this call + | + = help: the following other types implement trait `Pod`: + () + ManuallyDrop + Option + PhantomData + PhantomPinned + Wrapping + [T; N] + __m128 + and $N others + = note: there's an inherent method on `cutile::prelude::Tensor` of the same name, which can be auto-dereferenced from `&Arc>` + = note: required for `bool` to implement `AnyBitPattern` +note: required by a bound in `cutile::prelude::Tensor::::reinterpret` + --> src/tensor.rs + | + | pub fn reinterpret( + | ^^^^^^^^^^^^^ required by this bound in `Tensor::::reinterpret` +help: to access the inherent method on `cutile::prelude::Tensor`, use the fully-qualified path + | +11 - bytes.reinterpret::(&[4]).unwrap() +11 + cutile::prelude::Tensor::reinterpret(&bytes, &[4]).unwrap() + | From f42ed4fad5427caba918b916e5a68baae7e0eed9 Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:23:46 -0700 Subject: [PATCH 02/17] Fix atomic buffer representation and zeroed initialization safety Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- .github/workflows/ci.yml | 2 + .github/workflows/cutile-rs.yml | 1 + .github/workflows/docs.yml | 2 + .github/workflows/examples-compile.yml | 2 + Cargo.lock | 5 ++ Cargo.toml | 2 + README.md | 1 + cuda-core/Cargo.toml | 8 +- cuda-core/src/lib.rs | 5 +- cuda-core/src/simt/device_buffer.rs | 46 ++++++----- .../fail_wrap_elem_bool.rs | 2 +- .../fail_wrap_elem_bool.stderr | 16 ++-- .../device_buffer_casts/pass_bounded_casts.rs | 10 +-- cuda-core/tests/simt_device_buffer.rs | 80 +++++++++++++++++- cuda-core/tests/simt_device_buffer_casts.rs | 2 +- cuda-oxide/Cargo.lock | 6 ++ cuda-oxide/crates/cuda-device/Cargo.toml | 7 +- cuda-oxide/crates/cuda-device/src/atomic.rs | 12 ++- cuda-oxide/crates/cuda-device/src/lib.rs | 2 + .../cuda-device/tests/atomic_device_repr.rs | 40 +++++++++ .../compile_fail/atomic_shared_references.rs | 19 +++++ .../atomic_shared_references.stderr | 81 +++++++++++++++++++ .../cuda-macros/tests/device-only/Cargo.lock | 5 ++ .../examples/abi_hmm/Cargo.lock | 6 ++ .../examples/addressof_sharedarray/Cargo.lock | 6 ++ .../examples/aligned_field_loads/Cargo.lock | 6 ++ .../examples/aligned_field_stores/Cargo.lock | 6 ++ .../examples/array_constants/Cargo.lock | 6 ++ .../examples/array_for_loop/Cargo.lock | 6 ++ .../examples/array_index/Cargo.lock | 6 ++ .../examples/array_init/Cargo.lock | 6 ++ .../examples/asin_acos_smoke/Cargo.lock | 6 ++ .../assume_init_uninhabited_trap/Cargo.lock | 6 ++ .../examples/async_mlp/Cargo.lock | 6 ++ .../examples/async_vecadd/Cargo.lock | 6 ++ .../examples/atomic_f16/Cargo.lock | 6 ++ .../examples/atomics/Cargo.lock | 6 ++ .../examples/barrier/Cargo.lock | 6 ++ .../examples/bf16x2_arith/Cargo.lock | 6 ++ .../examples/bf16x2_fma/Cargo.lock | 6 ++ .../examples/bool_phi_cmp/Cargo.lock | 6 ++ .../examples/carrying_mul_add/Cargo.lock | 6 ++ .../examples/cast_chunks/Cargo.lock | 6 ++ .../examples/cast_tests/Cargo.lock | 6 ++ .../examples/cbrt_smoke/Cargo.lock | 6 ++ .../examples/checked_arith/Cargo.lock | 6 ++ .../examples/clc/Cargo.lock | 6 ++ .../examples/cluster/Cargo.lock | 6 ++ .../examples/compiler_features/Cargo.lock | 6 ++ .../examples/complex_mul/Cargo.lock | 6 ++ .../examples/const_aggregate/Cargo.lock | 6 ++ .../const_bool_dead_branch/Cargo.lock | 6 ++ .../examples/const_generic/Cargo.lock | 6 ++ .../examples/const_table_lookup/Cargo.lock | 6 ++ .../const_tuple_table_lookup/Cargo.lock | 6 ++ .../constant_index_from_end/Cargo.lock | 6 ++ .../examples/constant_memory/Cargo.lock | 6 ++ .../constant_memory_coeffs/Cargo.lock | 6 ++ .../constant_memory_simple/Cargo.lock | 6 ++ .../examples/constant_memory_table/Cargo.lock | 6 ++ .../examples/coop_groups_demo/Cargo.lock | 6 ++ .../examples/copy_aggregate_borrow/Cargo.lock | 6 ++ .../examples/copy_nonoverlapping/Cargo.lock | 6 ++ .../examples/counted_barrier/Cargo.lock | 6 ++ .../examples/cp_async_small/Cargo.lock | 6 ++ .../examples/cp_async_zfill/Cargo.lock | 6 ++ .../cpp_consumes_rust_device/Cargo.lock | 6 ++ .../examples/cross_crate_embedded/Cargo.lock | 6 ++ .../examples/cross_crate_kernel/Cargo.lock | 6 ++ .../cross_crate_merged_symbols/Cargo.lock | 6 ++ .../examples/cross_crate_recursion/Cargo.lock | 6 ++ .../examples/cuda_module_contract/Cargo.lock | 6 ++ .../examples/cuda_module_in_lib/Cargo.lock | 6 ++ .../examples/cuda_module_nested/Cargo.lock | 6 ++ .../examples/cutile_inter_kernel/Cargo.lock | 5 ++ .../cutile_inter_kernel/simt/Cargo.lock | 6 ++ .../examples/cvt_f16x2/Cargo.lock | 6 ++ .../examples/cvt_packed/Cargo.lock | 6 ++ .../examples/debug-tests/Cargo.lock | 6 ++ .../examples/debug/Cargo.lock | 6 ++ .../examples/debug_pointer_locals/Cargo.lock | 6 ++ .../examples/device_closures/Cargo.lock | 6 ++ .../examples/device_ffi_test/Cargo.lock | 6 ++ .../examples/device_global/Cargo.lock | 6 ++ .../examples/device_panic_trap/Cargo.lock | 6 ++ .../disjoint_from_raw_parts/Cargo.lock | 6 ++ .../examples/disjoint_slice_len/Cargo.lock | 6 ++ .../examples/dotprod/Cargo.lock | 6 ++ .../examples/dpx_minmax_chains/Cargo.lock | 6 ++ .../examples/drop_glue/Cargo.lock | 6 ++ .../examples/dst_metadata/Cargo.lock | 6 ++ .../examples/dynamic_smem/Cargo.lock | 6 ++ .../examples/elect_leader/Cargo.lock | 6 ++ .../enum_abi_multi_payload/Cargo.lock | 6 ++ .../examples/enum_array_match/Cargo.lock | 6 ++ .../enum_constant_provenance/Cargo.lock | 6 ++ .../examples/enum_payload_addr/Cargo.lock | 6 ++ .../enum_state_transitions/Cargo.lock | 6 ++ .../examples/enum_table_lookup/Cargo.lock | 6 ++ .../examples/error/Cargo.lock | 6 ++ .../error_enum_bool_payload_addr/Cargo.lock | 6 ++ .../error_enum_pointer_overlap/Cargo.lock | 6 ++ .../Cargo.lock | 6 ++ .../error_generated_intrinsic_abi/Cargo.lock | 6 ++ .../Cargo.lock | 6 ++ .../Cargo.lock | 6 ++ .../Cargo.lock | 6 ++ .../examples/error_heap_alloc/Cargo.lock | 6 ++ .../error_host_arch_intrinsic/Cargo.lock | 6 ++ .../error_host_target_feature/Cargo.lock | 6 ++ .../error_kernel_shared_param/Cargo.lock | 6 ++ .../error_kernel_shared_ptr_param/Cargo.lock | 6 ++ .../error_missing_device_attr/Cargo.lock | 6 ++ .../Cargo.lock | 6 ++ .../Cargo.lock | 6 ++ .../Cargo.lock | 6 ++ .../examples/ex2_approx_f16/Cargo.lock | 6 ++ .../examples/exact_div_chunks/Cargo.lock | 6 ++ .../examples/export_name_policy/Cargo.lock | 6 ++ .../examples/extern_crate_closure/Cargo.lock | 6 ++ .../examples/extern_libdevice/Cargo.lock | 6 ++ .../examples/f16_stress/Cargo.lock | 6 ++ .../examples/f16x2_arith/Cargo.lock | 6 ++ .../examples/f32x2_arith/Cargo.lock | 6 ++ .../examples/fcmp_ne_nan_smoke/Cargo.lock | 6 ++ .../examples/field_array_assign/Cargo.lock | 6 ++ .../examples/float_rounding/Cargo.lock | 6 ++ .../examples/fmaxmin_smoke/Cargo.lock | 6 ++ .../examples/fn_ptr_naming/Cargo.lock | 6 ++ .../fp_special_literal_smoke/Cargo.lock | 6 ++ .../examples/function_item_call/Cargo.lock | 6 ++ .../examples/future_apis/Cargo.lock | 6 ++ .../examples/gemm/Cargo.lock | 6 ++ .../examples/gemm_sol/Cargo.lock | 6 ++ .../examples/gemm_sol_final/Cargo.lock | 6 ++ .../examples/gemm_views/Cargo.lock | 6 ++ .../examples/generated_intrinsics/Cargo.lock | 6 ++ .../generated_intrinsics_blackwell/Cargo.lock | 6 ++ .../examples/generated_ldmatrix/Cargo.lock | 6 ++ .../examples/generic/Cargo.lock | 6 ++ .../examples/hashmap/Cargo.lock | 6 ++ .../examples/hashmap_v2/Cargo.lock | 6 ++ .../examples/hashmap_v3/Cargo.lock | 6 ++ .../examples/hello_constant/Cargo.lock | 6 ++ .../examples/helper_fn/Cargo.lock | 6 ++ .../examples/host_closure/Cargo.lock | 6 ++ .../host_closure_target_feature/Cargo.lock | 6 ++ .../examples/iket_trace/Cargo.lock | 6 ++ .../examples/image_convolution/Cargo.lock | 6 ++ .../examples/index2d_const/Cargo.lock | 6 ++ .../examples/index_field_assign/Cargo.lock | 6 ++ .../examples/inline_intent/Cargo.lock | 6 ++ .../examples/inline_ptx/Cargo.lock | 6 ++ .../examples/integer_minmax/Cargo.lock | 6 ++ .../examples/interior_mutability/Cargo.lock | 6 ++ .../interop_cubin_identity/Cargo.lock | 5 ++ .../interop_cubin_identity/device/Cargo.lock | 6 ++ .../kernel_reference_validity/Cargo.lock | 6 ++ .../examples/lanemask_scan/Cargo.lock | 6 ++ .../examples/legacy_atomic_fadd/Cargo.lock | 6 ++ .../examples/legacy_atomic_rmw_cas/Cargo.lock | 6 ++ .../legacy_nvvm_pointer_shapes/Cargo.lock | 6 ++ .../examples/libdevice_math/Cargo.lock | 6 ++ .../examples/libm_math/Cargo.lock | 6 ++ .../examples/manual_launch_generic/Cargo.lock | 6 ++ .../manual_launch_libdevice/Cargo.lock | 6 ++ .../examples/map_sum/Cargo.lock | 6 ++ .../examples/math_atan/Cargo.lock | 6 ++ .../examples/math_hyperbolic/Cargo.lock | 6 ++ .../examples/math_no_mir_inline/Cargo.lock | 6 ++ .../examples/math_tan/Cargo.lock | 6 ++ .../examples/mathdx_ffi_test/Cargo.lock | 6 ++ .../examples/mcast_barrier_test/Cargo.lock | 6 ++ .../examples/mem_swap/Cargo.lock | 6 ++ .../mir_projected_call_destination/Cargo.lock | 6 ++ .../examples/mma_mxf8f6f4/Cargo.lock | 6 ++ .../examples/ne_bytes_transmute/Cargo.lock | 6 ++ .../nested_index_assignment/Cargo.lock | 6 ++ .../examples/numeric_stress/Cargo.lock | 6 ++ .../examples/nvls_all_reduce/Cargo.lock | 6 ++ .../examples/option_ref_transmute/Cargo.lock | 6 ++ .../examples/option_ref_unwrap_or/Cargo.lock | 6 ++ .../examples/option_unwrap_trap/Cargo.lock | 6 ++ .../examples/ord_cmp/Cargo.lock | 6 ++ .../examples/packed_aggregate_abi/Cargo.lock | 6 ++ .../examples/packed_atomic_add/Cargo.lock | 6 ++ .../examples/padded_constants/Cargo.lock | 6 ++ .../examples/partial_warp_reduce/Cargo.lock | 6 ++ .../examples/pinned_overlap/Cargo.lock | 6 ++ .../examples/place_read_fallbacks/Cargo.lock | 6 ++ .../examples/policy_config/Cargo.lock | 6 ++ .../examples/primitive_stress/Cargo.lock | 6 ++ .../examples/printf/Cargo.lock | 6 ++ .../examples/projected_place_read/Cargo.lock | 6 ++ .../examples/proof_carrying_views/Cargo.lock | 6 ++ .../examples/ptr_copy/Cargo.lock | 6 ++ .../examples/ptr_offset_from/Cargo.lock | 6 ++ .../ptr_without_provenance/Cargo.lock | 6 ++ .../examples/reborrow/Cargo.lock | 6 ++ .../examples/redux_f32/Cargo.lock | 6 ++ .../examples/redux_minmax/Cargo.lock | 6 ++ .../examples/redux_sum/Cargo.lock | 6 ++ .../examples/ref_index_projections/Cargo.lock | 6 ++ .../examples/ref_operand_mul/Cargo.lock | 6 ++ .../examples/repr_align_block_args/Cargo.lock | 6 ++ .../examples/repr_transparent_abi/Cargo.lock | 6 ++ .../examples/repr_u32_enum_stride/Cargo.lock | 6 ++ .../examples/row_width_slice/Cargo.lock | 6 ++ .../examples/rustlantis-smoke/Cargo.lock | 6 ++ .../scoped_atomic_load_store/Cargo.lock | 6 ++ .../examples/select_unpredictable/Cargo.lock | 6 ++ .../examples/set_discriminant/Cargo.lock | 6 ++ .../set_discriminant_niche/Cargo.lock | 6 ++ .../examples/shared_debug/Cargo.lock | 6 ++ .../examples/shared_memory_helper/Cargo.lock | 6 ++ .../examples/shared_ptr_api/Cargo.lock | 6 ++ .../examples/shared_ptr_transmute/Cargo.lock | 6 ++ .../examples/shared_slice_unsize/Cargo.lock | 6 ++ .../examples/shared_stage_select/Cargo.lock | 6 ++ .../examples/sharedmem/Cargo.lock | 6 ++ .../examples/shuffle_64/Cargo.lock | 6 ++ .../slice_from_raw_parts_cast/Cargo.lock | 6 ++ .../examples/slice_get_mut/Cargo.lock | 6 ++ .../slice_index_bounds_check/Cargo.lock | 6 ++ .../examples/slice_iterators/Cargo.lock | 6 ++ .../examples/slice_reslice/Cargo.lock | 6 ++ .../examples/small_type_ffi_test/Cargo.lock | 6 ++ .../examples/sparse_mma_fp8/Cargo.lock | 6 ++ .../sparse_mma_ordered_float/Cargo.lock | 6 ++ .../examples/split_at_mut/Cargo.lock | 6 ++ .../examples/standalone_device_fn/Cargo.lock | 6 ++ .../examples/static_slice_addend/Cargo.lock | 6 ++ .../examples/static_slice_unsize/Cargo.lock | 6 ++ .../examples/step_by/Cargo.lock | 6 ++ .../struct_constant_provenance/Cargo.lock | 6 ++ .../examples/struct_field_layout/Cargo.lock | 6 ++ .../examples/subslice_projection/Cargo.lock | 6 ++ .../examples/switchint_128bit/Cargo.lock | 6 ++ .../examples/swizzle_smem/Cargo.lock | 6 ++ .../examples/tcgen05/Cargo.lock | 6 ++ .../examples/tcgen05_matmul/Cargo.lock | 6 ++ .../examples/thread_runs/Cargo.lock | 6 ++ .../examples/tiled_gemm/Cargo.lock | 6 ++ .../examples/tilelib_relu/Cargo.lock | 6 ++ .../examples/tma_copy/Cargo.lock | 6 ++ .../examples/tma_multicast/Cargo.lock | 6 ++ .../toolchain_pairing_smoke/Cargo.lock | 6 ++ .../transmute_scalar_struct/Cargo.lock | 6 ++ .../tuple_array_provenance/Cargo.lock | 6 ++ .../tuple_constant_provenance/Cargo.lock | 6 ++ .../examples/tuple_field_lookup/Cargo.lock | 6 ++ .../examples/tuple_return/Cargo.lock | 6 ++ .../examples/unaligned_memory/Cargo.lock | 6 ++ .../examples/unchecked_indexing/Cargo.lock | 6 ++ .../examples/uninit_const/Cargo.lock | 6 ++ .../examples/union_aggregate/Cargo.lock | 6 ++ .../examples/unroll_bounds_check/Cargo.lock | 6 ++ .../examples/unroll_smoke/Cargo.lock | 6 ++ .../examples/vecadd/Cargo.lock | 6 ++ .../examples/vectorization/Cargo.lock | 6 ++ .../examples/volatile_memory/Cargo.lock | 6 ++ .../examples/warp_reduce/Cargo.lock | 6 ++ .../examples/warp_sums/Cargo.lock | 6 ++ .../examples/wgmma/Cargo.lock | 6 ++ .../examples/wgmma_mma_bf16/Cargo.lock | 6 ++ .../memory-and-data-movement.md | 2 +- cuda-oxide/dependency-licenses.csv | 3 +- cuda-repr/Cargo.toml | 9 +++ cuda-repr/src/lib.rs | 36 +++++++++ cutile-rs/CHANGELOG.md | 5 ++ cutile-rs/Cargo.lock | 5 ++ .../launch_overhead_rust/Cargo.lock | 5 ++ 272 files changed, 1821 insertions(+), 50 deletions(-) create mode 100644 cuda-oxide/crates/cuda-device/tests/atomic_device_repr.rs create mode 100644 cuda-oxide/crates/cuda-device/tests/compile_fail/atomic_shared_references.rs create mode 100644 cuda-oxide/crates/cuda-device/tests/compile_fail/atomic_shared_references.stderr create mode 100644 cuda-repr/Cargo.toml create mode 100644 cuda-repr/src/lib.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bd0c764954..3a8259bc2a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,6 +12,7 @@ on: - 'cuda-bindings/**' - 'cuda-core/**' - 'cuda-core-derive/**' + - 'cuda-repr/**' - 'cuda-async/**' - 'Cargo.toml' - 'Cargo.lock' @@ -23,6 +24,7 @@ on: - 'cuda-bindings/**' - 'cuda-core/**' - 'cuda-core-derive/**' + - 'cuda-repr/**' - 'cuda-async/**' - 'Cargo.toml' - 'Cargo.lock' diff --git a/.github/workflows/cutile-rs.yml b/.github/workflows/cutile-rs.yml index 11d0496217..4329f2b827 100644 --- a/.github/workflows/cutile-rs.yml +++ b/.github/workflows/cutile-rs.yml @@ -64,6 +64,7 @@ jobs: - 'cuda-bindings/**' - 'cuda-core/**' - 'cuda-core-derive/**' + - 'cuda-repr/**' - 'cuda-async/**' - 'Cargo.toml' - 'Cargo.lock' diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index af8fdf3645..b98efcdfcf 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -10,6 +10,7 @@ on: - 'cuda-bindings/**' - 'cuda-core/**' - 'cuda-core-derive/**' + - 'cuda-repr/**' - 'cuda-async/**' - 'Cargo.toml' - 'Cargo.lock' @@ -21,6 +22,7 @@ on: - 'cuda-bindings/**' - 'cuda-core/**' - 'cuda-core-derive/**' + - 'cuda-repr/**' - 'cuda-async/**' - 'Cargo.toml' - 'Cargo.lock' diff --git a/.github/workflows/examples-compile.yml b/.github/workflows/examples-compile.yml index d9ab5a9548..fe44d4c575 100644 --- a/.github/workflows/examples-compile.yml +++ b/.github/workflows/examples-compile.yml @@ -10,6 +10,7 @@ on: - 'cuda-bindings/**' - 'cuda-core/**' - 'cuda-core-derive/**' + - 'cuda-repr/**' - 'cuda-async/**' - 'Cargo.toml' - 'Cargo.lock' @@ -21,6 +22,7 @@ on: - 'cuda-bindings/**' - 'cuda-core/**' - 'cuda-core-derive/**' + - 'cuda-repr/**' - 'cuda-async/**' - 'Cargo.toml' - 'Cargo.lock' diff --git a/Cargo.lock b/Cargo.lock index 37b27ab661..636f401c57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -159,6 +159,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", "trybuild", @@ -173,6 +174,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "dashmap" version = "6.2.1" diff --git a/Cargo.toml b/Cargo.toml index e27f86ecc4..cca4764e4c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,8 @@ members = [ "cuda-core", "cuda-core-derive", "cuda-async", + # no_std representation contracts shared by host and device crates. + "cuda-repr", ] # Nested workspaces. Without these, Cargo treats crates under them as part of # this workspace and `edition.workspace = true` in cuda-device (etc.) looks at diff --git a/README.md b/README.md index ecbfb2d9bc..00e2289e1e 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ cuda-rust/ ├── cuda-bindings/ runtime — CUDA driver API bindings ├── cuda-core/ runtime — contexts, streams, memory, modules, events, launch ├── cuda-core-derive/ runtime — derive macros for cuda-core +├── cuda-repr/ shared no_std host/device representation contracts ├── cuda-async/ runtime — lazy ops, futures, streams, graphs ├── cuda-oxide/ SIMT model — compiler, device crates, cuda-oxide-book └── cutile-rs/ Tile model — compiler, tile crates, cutile-book diff --git a/cuda-core/Cargo.toml b/cuda-core/Cargo.toml index 3ed9d2e517..b7573874eb 100644 --- a/cuda-core/Cargo.toml +++ b/cuda-core/Cargo.toml @@ -15,11 +15,11 @@ readme = "README.md" # copy depend on a crates.io cuda-bindings instead of the one beside it. cuda-bindings = { version = "=0.4.0", path = "../cuda-bindings" } cuda-core-derive = { version = "=0.4.0", path = "../cuda-core-derive" } +cuda-repr = { version = "=0.4.0", path = "../cuda-repr" } anyhow = "1" -# `AnyBitPattern` bounds the safe reinterpreting casts on `DeviceBuffer` and -# `TransparentWrapper` is the atomic-slice mapping; both are re-exported at the -# crate root so downstream crates can implement them without a second -# dependency. `min_const_generics` gives `Pod` for arrays of every length. +# `AnyBitPattern` bounds safe reinterpreting casts on `DeviceBuffer`. +# Re-exported at the crate root for downstream element types. +# `min_const_generics` gives `Pod` for arrays of every length. bytemuck = { version = "1", features = ["min_const_generics"] } # The `bytemuck` feature makes `f16` and `bf16` `Pod`, so a buffer or tensor # can be reinterpreted as either of them. diff --git a/cuda-core/src/lib.rs b/cuda-core/src/lib.rs index 9f14a8f690..73cf8e529f 100644 --- a/cuda-core/src/lib.rs +++ b/cuda-core/src/lib.rs @@ -16,11 +16,12 @@ pub mod simt; pub mod vmm; pub use api::*; -// `DeviceBuffer::cast_elem`, `cast_chunks`, `wrap_elem`, and `peel_elem` are -// bounded on bytemuck's marker traits. The re-export lets a downstream crate +// `DeviceBuffer::cast_elem` and `cast_chunks` are bounded on bytemuck's +// marker traits. The re-export lets a downstream crate // implement them for its own element types against the same bytemuck. pub use bytemuck; pub use cuda_bindings as sys; +pub use cuda_repr::DeviceRepr; pub use dtype::*; pub use error::*; pub use runtime::*; diff --git a/cuda-core/src/simt/device_buffer.rs b/cuda-core/src/simt/device_buffer.rs index 09a82f7a51..69caab9868 100644 --- a/cuda-core/src/simt/device_buffer.rs +++ b/cuda-core/src/simt/device_buffer.rs @@ -33,8 +33,9 @@ use std::mem::MaybeUninit; use std::num::Wrapping; use std::sync::Arc; -use bytemuck::{AnyBitPattern, TransparentWrapper}; +use bytemuck::AnyBitPattern; use cuda_bindings::CUdeviceptr; +use cuda_repr::DeviceRepr; use crate::error::DriverError; use crate::simt::context::CudaContext; @@ -324,29 +325,33 @@ impl DeviceBuffer { /// pointee permits shared mutation, so rustc does not mark the slice /// `readonly`/`noalias`. /// - /// `W: TransparentWrapper` is the soundness argument: the wrapper has - /// the layout and the valid values of `T`, which is what the `bytemuck` - /// contract promises, so relabelling the allocation cannot produce an - /// invalid value. The wrapper need not be `Copy` or `DeviceCopy`; the + /// `W: DeviceRepr` guarantees the same layout and valid initialized + /// representations in both directions, without element destruction or + /// additional ownership obligations. It permits no shared-reference conversions. + /// The wrapper need not be `Copy` or `DeviceCopy`; the /// atomic types are neither. [`Self::peel_elem`] goes back to `T`, for /// example before [`Self::to_host_vec`]. - pub fn wrap_elem>(self) -> DeviceBuffer { - // SAFETY: `W` is a transparent wrapper of `T`, so every `T` in the - // allocation is a valid `W`; `relabel` checks the layout. + /// + /// This consumes the buffer and retains its allocation, context, and + /// deallocation stream. It does not synchronize pending kernel accesses; + /// those must obey the launch API's borrowing and ordering requirements. + pub fn wrap_elem>(self) -> DeviceBuffer { + // SAFETY: DeviceRepr guarantees every initialized T representation + // is valid as W; relabel preserves ownership and checks the layout. unsafe { self.relabel() } } /// Remove a `#[repr(transparent)]` wrapper from the element type. /// - /// The inverse of [`Self::wrap_elem`]: `T` must be a `TransparentWrapper` - /// around `I`, so a `DeviceBuffer` peels back to the + /// The inverse of [`Self::wrap_elem`]: `T` must implement `DeviceRepr`, + /// so a `DeviceBuffer` peels back to the /// `DeviceBuffer` it was made from, which can be read on the host. pub fn peel_elem(self) -> DeviceBuffer where - T: TransparentWrapper, + T: DeviceRepr, { - // SAFETY: `T` is a transparent wrapper of `I`, so every `T` in the - // allocation is a valid `I`; `relabel` checks the layout. + // SAFETY: DeviceRepr guarantees every initialized T representation + // is valid as I; relabel preserves ownership and checks the layout. unsafe { self.relabel() } } @@ -597,8 +602,12 @@ impl DeviceBuffer { unsafe { Self::from_host_async_unchecked(stream, data.as_slice()) } } - /// Allocates zero-initialized device memory of `len` elements, enqueued - /// on `stream`. + /// Allocates zero-initialized device memory of `len` elements. + /// + /// The zero-fill is enqueued on `stream`, then this method synchronizes + /// that stream before returning. The initialized buffer is therefore safe + /// to use on another stream, including for types such as `bool` whose + /// validity depends on initialization having completed. /// /// A `len` of zero (or a zero-sized `T`) yields an empty buffer without /// touching the driver allocator. @@ -607,9 +616,9 @@ impl DeviceBuffer { /// /// The returned buffer takes ownership of the device allocation /// immediately after `malloc_sync`, before the fallible - /// `memset_d8_async` enqueue runs. If the enqueue fails, the early - /// return drops the buffer and its `Drop` impl frees the allocation, so - /// no device memory is leaked. + /// `memset_d8_async` enqueue and stream synchronization run. If either + /// fails, the early return drops the buffer and its `Drop` impl frees the + /// allocation, so no device memory is leaked. pub fn zeroed(stream: &CudaStream, len: usize) -> Result { let ctx = stream.context().clone(); let num_bytes = allocation_size::(len)?; @@ -630,6 +639,7 @@ impl DeviceBuffer { unsafe { crate::simt::memory::memset_d8_async(buf.ptr, 0, num_bytes, stream.cu_stream())?; } + stream.synchronize()?; Ok(buf) } diff --git a/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.rs b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.rs index 3985499611..a03eb9f435 100644 --- a/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.rs +++ b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.rs @@ -3,7 +3,7 @@ use cuda_core::DeviceBuffer; -// `bool` is not a `TransparentWrapper`, and no downstream crate can make +// `bool` is not a `DeviceRepr`, and no downstream crate can make // it one, so the wrapper path cannot forge a `bool` buffer either. fn forge(bytes: DeviceBuffer) -> DeviceBuffer { bytes.wrap_elem() diff --git a/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr index 9483b7ee36..cdcbd14208 100644 --- a/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr +++ b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr @@ -1,16 +1,16 @@ -error[E0277]: the trait bound `bool: TransparentWrapper` is not satisfied +error[E0277]: the trait bound `bool: DeviceRepr` is not satisfied --> tests/device_buffer_casts/fail_wrap_elem_bool.rs:9:11 | 9 | bytes.wrap_elem() - | ^^^^^^^^^ the trait `TransparentWrapper` is not implemented for `bool` + | ^^^^^^^^^ the trait `DeviceRepr` is not implemented for `bool` | -help: the trait `TransparentWrapper` is implemented for `Wrapping` - --> $CARGO/bytemuck-$VERSION/src/transparent.rs +help: the trait `DeviceRepr` is implemented for `Wrapping` + --> $WORKSPACE/cuda-repr/src/lib.rs | - | unsafe impl TransparentWrapper for core::num::Wrapping {} - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | unsafe impl DeviceRepr for core::num::Wrapping {} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: required by a bound in `DeviceBuffer::::wrap_elem` --> src/simt/device_buffer.rs | - | pub fn wrap_elem>(self) -> DeviceBuffer { - | ^^^^^^^^^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::wrap_elem` + | pub fn wrap_elem>(self) -> DeviceBuffer { + | ^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::wrap_elem` diff --git a/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs b/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs index 619281bfd2..b00b87502a 100644 --- a/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs +++ b/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs @@ -3,16 +3,16 @@ use std::num::Wrapping; -use cuda_core::bytemuck::TransparentWrapper; -use cuda_core::DeviceBuffer; +use cuda_core::{DeviceBuffer, DeviceRepr}; // A wrapper that is not `Copy`, like the atomic types in cuda-device: it can // be wrapped and peeled, but not reinterpreted into with `cast_elem`. #[repr(transparent)] -struct Counter(u32); +struct Counter(std::cell::UnsafeCell); -// SAFETY: `#[repr(transparent)]` over `u32` with no other fields. -unsafe impl TransparentWrapper for Counter {} +// SAFETY: transparent over UnsafeCell, which has u32's layout and valid +// representations, and neither representation owns resources or needs Drop. +unsafe impl DeviceRepr for Counter {} // Every bit pattern is a valid `f32`, so bytes written as `u32` are fine. fn reinterpret(words: DeviceBuffer) -> DeviceBuffer { diff --git a/cuda-core/tests/simt_device_buffer.rs b/cuda-core/tests/simt_device_buffer.rs index 9d67b0471d..6ebf9ace90 100644 --- a/cuda-core/tests/simt_device_buffer.rs +++ b/cuda-core/tests/simt_device_buffer.rs @@ -3,8 +3,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -use cuda_core::{CudaContext, CudaStream, DeviceBuffer, DriverError, PinnedHostBuffer}; -use std::sync::{mpsc, Mutex, MutexGuard}; +use cuda_core::{CudaContext, CudaStream, DeviceBuffer, DeviceRepr, DriverError, PinnedHostBuffer}; +use std::sync::{mpsc, Arc, Mutex, MutexGuard}; use std::thread::JoinHandle; use std::time::Duration; @@ -114,6 +114,82 @@ fn device_buffer_zeroed_initializes_with_zeros() { assert_eq!(host_vec, &[0.0, 0.0, 0.0, 0.0]); } +#[test] +fn zeroed_waits_for_initialization_before_cross_stream_readback() { + let _gated_test_guard = lock_gated_test(); + let ctx = CudaContext::new(0).expect("failed to create CUDA context"); + let writer = ctx.new_stream().expect("failed to create writer stream"); + let reader = ctx.new_stream().expect("failed to create reader stream"); + let release_gate = gate_stream(&writer); + let (started_tx, started_rx) = mpsc::channel(); + let (completion_tx, completion_rx) = mpsc::channel(); + let worker_writer = writer.clone(); + let worker = std::thread::spawn(move || { + worker_writer.context().bind_to_thread().unwrap(); + started_tx.send(()).unwrap(); + // Inspect byte storage, never potentially invalid Rust bool values, + // so a regression in initialization ordering cannot make this test UB. + let buffer = DeviceBuffer::::zeroed(&worker_writer, 1 << 20); + completion_tx.send(buffer).unwrap(); + }); + let buffer = finish_gated_worker( + "zeroed initialization", + release_gate, + started_rx, + completion_rx, + worker, + ) + .expect("zeroed allocation failed"); + assert!(writer.query().expect("writer query failed")); + assert_eq!(buffer.to_host_vec(&reader).unwrap(), vec![0; 1 << 20]); + + // Exercise bool's safe constructor too, reading its representation as + // bytes so the test remains safe even if the ordering regresses. + let flags = DeviceBuffer::::zeroed(&writer, 1024).unwrap(); + assert!(writer.query().unwrap()); + assert_eq!( + flags.cast_elem::().to_host_vec(&reader).unwrap(), + vec![0; 1024] + ); +} + +#[test] +fn owned_wrapper_roundtrip_preserves_allocation_and_stream() { + #[repr(transparent)] + struct Counter(std::cell::UnsafeCell); + // SAFETY: UnsafeCell has u32's layout and valid initialized representations; + // neither representation needs Drop or introduces ownership obligations. + unsafe impl DeviceRepr for Counter {} + + let ctx = CudaContext::new(0).unwrap(); + let stream = ctx.new_stream().unwrap(); + let values = [1_u32, 7, 42]; + // SAFETY: the following blocking copy initializes the allocation before + // any read. All accesses use the allocation stream and finish before drop. + let mut words = + unsafe { DeviceBuffer::::uninitialized_async(&stream, values.len()) }.unwrap(); + words.copy_from_host(&stream, &values).unwrap(); + let ptr = words.cu_deviceptr(); + let stream_refs = Arc::strong_count(&stream); + let context_refs = Arc::strong_count(&ctx); + + let counters = words.wrap_elem::(); + assert_eq!(counters.cu_deviceptr(), ptr); + assert_eq!(counters.len(), values.len()); + assert!(Arc::ptr_eq(counters.context(), &ctx)); + assert_eq!(Arc::strong_count(&stream), stream_refs); + assert_eq!(Arc::strong_count(&ctx), context_refs); + + let words = counters.peel_elem::(); + assert_eq!(words.cu_deviceptr(), ptr); + assert_eq!(Arc::strong_count(&stream), stream_refs); + assert_eq!(Arc::strong_count(&ctx), context_refs); + assert_eq!(words.to_host_vec(&stream).unwrap(), values); + drop(words); + stream.synchronize().unwrap(); + assert_eq!(Arc::strong_count(&stream), stream_refs - 1); +} + #[test] fn device_buffer_supports_empty_allocations() { let ctx = CudaContext::new(0).expect("failed to create CUDA context"); diff --git a/cuda-core/tests/simt_device_buffer_casts.rs b/cuda-core/tests/simt_device_buffer_casts.rs index 1268bc06d4..fed5848915 100644 --- a/cuda-core/tests/simt_device_buffer_casts.rs +++ b/cuda-core/tests/simt_device_buffer_casts.rs @@ -5,7 +5,7 @@ //! //! `cast_elem` and `cast_chunks` reinterpret bytes, so their target must be //! `bytemuck::AnyBitPattern`; `wrap_elem` and `peel_elem` relabel through a -//! `bytemuck::TransparentWrapper`. `bool` is neither, so no safe cast can +//! `cuda_core::DeviceRepr`. `bool` is neither, so no safe cast can //! turn byte storage into a `DeviceBuffer`. These cases only need to //! compile or fail to compile; none touches a GPU. Regenerate the //! expectations with `TRYBUILD=overwrite cargo test -p cuda-core --test diff --git a/cuda-oxide/Cargo.lock b/cuda-oxide/Cargo.lock index 6306581deb..5381d84a4e 100644 --- a/cuda-oxide/Cargo.lock +++ b/cuda-oxide/Cargo.lock @@ -420,6 +420,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -439,6 +440,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", "trybuild", ] @@ -513,6 +515,10 @@ dependencies = [ "thiserror 2.0.21", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/cuda-device/Cargo.toml b/cuda-oxide/crates/cuda-device/Cargo.toml index 8fb0d8fe2b..cfdeea05ad 100644 --- a/cuda-oxide/crates/cuda-device/Cargo.toml +++ b/cuda-oxide/crates/cuda-device/Cargo.toml @@ -15,9 +15,10 @@ readme = "README.md" # it back on for all of them and defeat the feature. `cuda-host` requests # `host` explicitly, so any build that loads or launches a module still has it. cuda-macros = { workspace = true } -# The atomic types implement `bytemuck::TransparentWrapper` so that cuda-core's -# `DeviceBuffer::wrap_elem` and `peel_elem` accept them. The orphan rule means -# only this crate can write those impls; cuda-core cannot name these types. +# Shared no_std marker for owned-buffer representation changes. Keeping it +# separate from cuda-core leaves kernel-only builds free of host dependencies. +cuda-repr = { version = "=0.4.0", path = "../../../cuda-repr" } +# Vector types implement Pod for safe cast_chunks targets. bytemuck = { workspace = true } [dev-dependencies] diff --git a/cuda-oxide/crates/cuda-device/src/atomic.rs b/cuda-oxide/crates/cuda-device/src/atomic.rs index eaa35066dc..7aefa2690f 100644 --- a/cuda-oxide/crates/cuda-device/src/atomic.rs +++ b/cuda-oxide/crates/cuda-device/src/atomic.rs @@ -181,8 +181,10 @@ macro_rules! define_integer_atomic { // fields, so it has the layout and the valid values of `$ty`. This // lets a `DeviceBuffer<$ty>` be viewed as `DeviceBuffer<$Name>` with // cuda-core's `DeviceBuffer::wrap_elem` and turned back with - // `peel_elem` so the host can read the result. - unsafe impl bytemuck::TransparentWrapper<$ty> for $Name {} + // `peel_elem` so the host can read the result. Neither type needs + // destruction or owns resources. DeviceRepr exposes no reference + // conversions: &integer and &atomic have different aliasing rules. + unsafe impl cuda_repr::DeviceRepr<$ty> for $Name {} impl $Name { /// Create a new atomic with the given initial value. @@ -385,8 +387,10 @@ macro_rules! define_float_atomic { // fields, so it has the layout and the valid values of `$ty`. This // lets a `DeviceBuffer<$ty>` be viewed as `DeviceBuffer<$Name>` with // cuda-core's `DeviceBuffer::wrap_elem` and turned back with - // `peel_elem` so the host can read the result. - unsafe impl bytemuck::TransparentWrapper<$ty> for $Name {} + // `peel_elem` so the host can read the result. Neither type needs + // destruction or owns resources. DeviceRepr exposes no reference + // conversions: &float and &atomic have different aliasing rules. + unsafe impl cuda_repr::DeviceRepr<$ty> for $Name {} impl $Name { /// Create a new atomic with the given initial value. diff --git a/cuda-oxide/crates/cuda-device/src/lib.rs b/cuda-oxide/crates/cuda-device/src/lib.rs index 67ee46790e..7baa09c772 100644 --- a/cuda-oxide/crates/cuda-device/src/lib.rs +++ b/cuda-oxide/crates/cuda-device/src/lib.rs @@ -10,6 +10,8 @@ // both here and in downstream device crates. extern crate self as cuda_device; +pub use cuda_repr::DeviceRepr; + pub use cuda_macros::{ cluster_launch, constant, convergent, cooperative_launch, cuda_module, device, gpu_printf, kernel, launch_bounds, launch_contract, ptx_asm, pure, readonly, tile_export, diff --git a/cuda-oxide/crates/cuda-device/tests/atomic_device_repr.rs b/cuda-oxide/crates/cuda-device/tests/atomic_device_repr.rs new file mode 100644 index 0000000000..aba5a162c8 --- /dev/null +++ b/cuda-oxide/crates/cuda-device/tests/atomic_device_repr.rs @@ -0,0 +1,40 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +#![feature(f16)] + +use cuda_device::DeviceRepr; +use cuda_device::atomic::*; + +#[test] +fn atomic_representations_match_their_scalars() { + fn check, Inner>() { + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + assert!(!core::mem::needs_drop::()); + assert!(!core::mem::needs_drop::()); + } + + macro_rules! check_atomics { + ($($atomic:ty => $inner:ty),* $(,)?) => { + $(check::<$atomic, $inner>();)* + }; + } + check_atomics!( + DeviceAtomicU32 => u32, DeviceAtomicI32 => i32, + DeviceAtomicU64 => u64, DeviceAtomicI64 => i64, + DeviceAtomicF16 => f16, DeviceAtomicF32 => f32, DeviceAtomicF64 => f64, + BlockAtomicU32 => u32, BlockAtomicI32 => i32, + BlockAtomicU64 => u64, BlockAtomicI64 => i64, + BlockAtomicF16 => f16, BlockAtomicF32 => f32, BlockAtomicF64 => f64, + SystemAtomicU32 => u32, SystemAtomicI32 => i32, + SystemAtomicU64 => u64, SystemAtomicI64 => i64, + SystemAtomicF16 => f16, SystemAtomicF32 => f32, SystemAtomicF64 => f64, + ); +} + +#[test] +fn atomic_shared_reference_conversions_are_rejected() { + let t = trybuild::TestCases::new(); + t.compile_fail("tests/compile_fail/atomic_shared_references.rs"); +} diff --git a/cuda-oxide/crates/cuda-device/tests/compile_fail/atomic_shared_references.rs b/cuda-oxide/crates/cuda-device/tests/compile_fail/atomic_shared_references.rs new file mode 100644 index 0000000000..b6102824eb --- /dev/null +++ b/cuda-oxide/crates/cuda-device/tests/compile_fail/atomic_shared_references.rs @@ -0,0 +1,19 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +use bytemuck::TransparentWrapper; +use cuda_device::atomic::{DeviceAtomicF32, DeviceAtomicU32}; + +fn wrap(integer: &u32, float: &f32) { + // Shared scalar references do not permit atomic mutation. + let _ = DeviceAtomicU32::wrap_ref(integer); + let _ = DeviceAtomicF32::wrap_ref(float); +} + +fn peel(integer: &DeviceAtomicU32, float: &DeviceAtomicF32) { + // Atomic mutation must not coexist with ordinary shared references. + let _ = DeviceAtomicU32::peel_ref(integer); + let _ = DeviceAtomicF32::peel_ref(float); +} + +fn main() {} diff --git a/cuda-oxide/crates/cuda-device/tests/compile_fail/atomic_shared_references.stderr b/cuda-oxide/crates/cuda-device/tests/compile_fail/atomic_shared_references.stderr new file mode 100644 index 0000000000..505f1d6a10 --- /dev/null +++ b/cuda-oxide/crates/cuda-device/tests/compile_fail/atomic_shared_references.stderr @@ -0,0 +1,81 @@ +error[E0599]: no associated function or constant named `wrap_ref` found for struct `DeviceAtomicU32` in the current scope + --> tests/compile_fail/atomic_shared_references.rs:9:30 + | +9 | let _ = DeviceAtomicU32::wrap_ref(integer); + | ^^^^^^^^ associated function or constant not found in `DeviceAtomicU32` + | +note: if you're trying to build a new `DeviceAtomicU32`, consider using `DeviceAtomicU32::new` which returns `DeviceAtomicU32` + --> src/atomic.rs + | + | pub const fn new(val: $ty) -> Self { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +... + | / define_integer_atomic! { + | | /// 32-bit unsigned atomic, **device scope** (`.gpu`). + | | pub struct DeviceAtomicU32(u32); + | | } + | |_- in this macro invocation + = note: this error originates in the macro `define_integer_atomic` (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0599]: no associated function or constant named `wrap_ref` found for struct `DeviceAtomicF32` in the current scope + --> tests/compile_fail/atomic_shared_references.rs:10:30 + | +10 | let _ = DeviceAtomicF32::wrap_ref(float); + | ^^^^^^^^ associated function or constant not found in `DeviceAtomicF32` + | +note: if you're trying to build a new `DeviceAtomicF32`, consider using `DeviceAtomicF32::new` which returns `DeviceAtomicF32` + --> src/atomic.rs + | + | pub const fn new(val: $ty) -> Self { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +... + | / define_float_atomic! { + | | /// 32-bit float atomic, **device scope** (`.gpu`). + | | /// + | | /// `swap` lowers to hardware `atom.exch.b32`; this API does not expose +... | + | | pub struct DeviceAtomicF32(f32); + | | } + | |_- in this macro invocation + = note: this error originates in the macro `define_float_atomic` (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0599]: no associated function or constant named `peel_ref` found for struct `DeviceAtomicU32` in the current scope + --> tests/compile_fail/atomic_shared_references.rs:15:30 + | +15 | let _ = DeviceAtomicU32::peel_ref(integer); + | ^^^^^^^^ associated function or constant not found in `DeviceAtomicU32` + | +note: if you're trying to build a new `DeviceAtomicU32`, consider using `DeviceAtomicU32::new` which returns `DeviceAtomicU32` + --> src/atomic.rs + | + | pub const fn new(val: $ty) -> Self { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +... + | / define_integer_atomic! { + | | /// 32-bit unsigned atomic, **device scope** (`.gpu`). + | | pub struct DeviceAtomicU32(u32); + | | } + | |_- in this macro invocation + = note: this error originates in the macro `define_integer_atomic` (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0599]: no associated function or constant named `peel_ref` found for struct `DeviceAtomicF32` in the current scope + --> tests/compile_fail/atomic_shared_references.rs:16:30 + | +16 | let _ = DeviceAtomicF32::peel_ref(float); + | ^^^^^^^^ associated function or constant not found in `DeviceAtomicF32` + | +note: if you're trying to build a new `DeviceAtomicF32`, consider using `DeviceAtomicF32::new` which returns `DeviceAtomicF32` + --> src/atomic.rs + | + | pub const fn new(val: $ty) -> Self { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +... + | / define_float_atomic! { + | | /// 32-bit float atomic, **device scope** (`.gpu`). + | | /// + | | /// `swap` lowers to hardware `atom.exch.b32`; this API does not expose +... | + | | pub struct DeviceAtomicF32(f32); + | | } + | |_- in this macro invocation + = note: this error originates in the macro `define_float_atomic` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock b/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock index eb776d6441..aeb18900c6 100644 --- a/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock +++ b/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock @@ -14,6 +14,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -27,6 +28,10 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "device-only-kernels" version = "0.0.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock index e32a05d7ba..74bf2ea629 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock index 5770c790b1..84edde3c8f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock index 15af4a9693..fd9ab8d0ee 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock index 40b21cbcc5..49b71a5fd7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock index 54162852f3..ca1aff066e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock index 9daf0def21..a72500fa9a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock index 43f9caa003..a0e2335648 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock index c55a7f61ee..dc1619243b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock index 4220beeeaa..e7fec1ef6b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock index 0e3a629f88..16793594e9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock index 2f0c33961d..8f4ce7d4db 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock @@ -198,6 +198,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -217,6 +218,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -246,6 +248,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock index 3f9618dd78..14f2f77d92 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock @@ -198,6 +198,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -217,6 +218,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -246,6 +248,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock index 7f1d83827d..5563aac1b7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock index 3666d36f26..1e97d4c45d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock index a472d2d6c3..fb80075f52 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock index af81ec3abb..c4084c38a2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock index 774f5871ee..c0d10b5f8e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock index 3b6885015e..a592fcb5e7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock index 20ef2ff01d..ae0aa9682e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock index dfa634ff62..63d31f3f86 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock index 790ab7f970..8e266a3082 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock index 0aa18ce9ef..d4c2916828 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock index ad13e9861d..9dae2ed834 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock index 1dd4cf244b..cedda42d5e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock @@ -176,6 +176,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -195,6 +196,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -223,6 +225,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock index 4d309903e6..d89ef7bcbe 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock @@ -176,6 +176,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -195,6 +196,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -223,6 +225,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock index 7d48174ac9..04c5215c8d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock @@ -176,6 +176,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -195,6 +196,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -223,6 +225,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock index ba3be3cb86..64bab1b97d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock index 4f526eb8da..d792f8768c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock index 08c7244207..da5a0fd11b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock index b9072e6c21..70e1259b6e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock @@ -176,6 +176,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -195,6 +196,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -223,6 +225,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock index 32e35e9a3b..3f83846093 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock index 61b7d51840..c12cf02a15 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock index 31aa22f31a..8b48056d0c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock index 28263afc62..9f5cb8478f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock index 157d14aa74..84085164a6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock index 8e4127ae92..62a21ff9dc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock index b6076f46f5..b35648c811 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock index 4650bc9bc9..721e0cec2e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock index 3aae0eea03..64bf859555 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock index 34c4c587f3..d12e55f749 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock index b125b55851..013dcbea6e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock index 8e295db51b..6ab933d8a8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock index de0017f464..06c599b866 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -194,6 +195,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -222,6 +224,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock index 7d8b466212..8df131b539 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock @@ -174,6 +174,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -193,6 +194,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -221,6 +223,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock index 4139b5c739..659e32c3d0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock @@ -176,6 +176,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -195,6 +196,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -223,6 +225,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock index 597bc9d838..b5957dbab0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock @@ -177,6 +177,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -196,6 +197,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -224,6 +226,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock index a673de1d39..f3668d7b9a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock @@ -176,6 +176,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -195,6 +196,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -223,6 +225,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock index aa9572022f..4d50eada5f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock @@ -176,6 +176,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -195,6 +196,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -223,6 +225,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock index 9621cfb2c6..3a117ec202 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock index 996ae63bc8..832f093860 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock index ee7e0f2c51..7917b80a1e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock index 40d681bac7..58419fa75e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock @@ -222,6 +222,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -235,6 +236,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cutile" version = "0.4.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock index 35aaf4c667..971ab80c80 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock @@ -145,6 +145,7 @@ dependencies = [ "anyhow", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -163,6 +164,7 @@ name = "cuda-device" version = "0.2.1" dependencies = [ "cuda-macros", + "cuda-repr", ] [[package]] @@ -191,6 +193,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock index d35fea4503..26edc30110 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock index ee68c56eac..34ce4988af 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock index acfbda32bf..0b5923a16f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock index 0715ab1a92..43b8ba57ee 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock index 1a54fdef80..6b9642c616 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock index 596f2e2faf..39296f8b9d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock index 6aa1fe3cbe..ee0aff3f60 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock index 760daeb460..67807add8b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock index 371d28e9d8..caa268e65a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock index 4c3cf5bda5..bbab68cfd5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock index 72729140cd..d5f8fa0f4f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock index a81bee5c6a..958edc7410 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock index 6b6178050d..f765292ee5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock index ca41e9d875..d9a5650ae8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock index 140b25e270..19c6b61b24 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock index 08762b885d..ead52dd0d4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock index 65c9d25191..e3e37416f4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock index 6304bbbd3a..56b41ea0a8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock index 22f83d0d89..81b9081683 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock index fb864d94d3..2b634e0ab6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock index f683cb431f..d463b262e9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock index 9d412058ec..d6a461d337 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock index 2ea05045cc..8e0c014674 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock index 67ba0063cc..77f98d31f8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock index d87dc6cf5a..d074fcfea5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock index 96f72cb92d..e7c327edfc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock index 0a6cc8b683..38e52cdd48 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock index b4ee34b5f6..175a193e43 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -217,6 +219,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock index df4bbc897c..2e9f9938b7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -217,6 +219,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock index c4b4e4dae3..8072c59573 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -217,6 +219,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock index 24339d68e2..8179169135 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -217,6 +219,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock index 05a37d3309..cfc096686a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock index cd319329cb..268ec31989 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock index 963869cfd6..e59ff173ff 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock index 7e5bca91fa..ed19958405 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock index c46db5e9e1..861faf0e5b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock @@ -145,6 +145,7 @@ dependencies = [ "anyhow", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -163,6 +164,7 @@ name = "cuda-device" version = "0.2.1" dependencies = [ "cuda-macros", + "cuda-repr", ] [[package]] @@ -191,6 +193,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock index 87981ce190..b40613ba54 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock index 3d415dfc69..3b9be43ecd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock index 746e3e1063..4e2d1ed77f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock @@ -145,6 +145,7 @@ dependencies = [ "anyhow", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -163,6 +164,7 @@ name = "cuda-device" version = "0.2.1" dependencies = [ "cuda-macros", + "cuda-repr", ] [[package]] @@ -191,6 +193,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock index ac804086d6..364bc8f1ca 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock @@ -145,6 +145,7 @@ dependencies = [ "anyhow", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -163,6 +164,7 @@ name = "cuda-device" version = "0.2.1" dependencies = [ "cuda-macros", + "cuda-repr", ] [[package]] @@ -191,6 +193,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock index b3f77d6e80..72158c05c2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock index cc306a3f20..a5f5470479 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock index 71b66afda4..89bc1cafaa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock index a0aeac285d..2bd114fa17 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock index a5b7ff1a29..df52811d1a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock index cf03e2d237..e5163fa61f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock index f754e81756..bfcd4c54d1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock index f9d065fe91..eb5b8c18e1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock index ba35be1bd9..73908d301a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock index a155e9dc56..0394d682c8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock index c53a552b36..340fb5d487 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock index 1c343a7891..6bd36d8d10 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock index 0fabf7720c..f0282a48bd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock index 31b4271ce2..936db69293 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock index 203e2fbb2e..144a20d318 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock index b31b2da3b0..dc2c58e40b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock index f05d50f7bb..90296f8f70 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock index 698a876d24..ec88378f91 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock index 6db06b2a72..512a321d08 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock index 8b56fe0cdb..89c2a35b58 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock index e7f79a3f09..2fbd2fc964 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -217,6 +219,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock index 8cf215fcc8..5359d8316d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -217,6 +219,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock index 21b64036cd..77758496a8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -217,6 +219,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock index df359e8813..7eb09de9c7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock index 77c150c645..707d63007c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock index 6d914f4f21..b18eead33b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock @@ -197,6 +197,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -216,6 +217,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -244,6 +246,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock index f4582381c0..38c6a4ed77 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock @@ -197,6 +197,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -216,6 +217,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -244,6 +246,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock index 502a413d77..1a4a848c62 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock index ee71176137..d0646b0dd7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock index 6888955861..87c2e9743e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock @@ -187,6 +187,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -206,6 +207,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -235,6 +237,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock index 3fda79d4b5..a8ee128b4d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock index e42f67eff2..99c22cab6e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock index 5b33a97749..681ccaefc3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock @@ -178,6 +178,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -197,6 +198,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -225,6 +227,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock index 07deeabcf4..b6476c2d0c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock index b41f68daf1..0d93571451 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock index cb8ef2d6db..5deb7ab62f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock @@ -145,6 +145,7 @@ dependencies = [ "anyhow", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -163,6 +164,7 @@ name = "cuda-device" version = "0.2.1" dependencies = [ "cuda-macros", + "cuda-repr", ] [[package]] @@ -191,6 +193,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock index e0a5cf93ce..7942309443 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock index 6b4f8149ed..93bd2720b0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock index b0c3041967..0dcaeb7c0c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock index 804e9e4c1f..321ec16b02 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock @@ -155,6 +155,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -168,6 +169,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "digest" version = "0.10.7" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock index f22694c1a4..9456e4eff4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock @@ -145,6 +145,7 @@ dependencies = [ "anyhow", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -163,6 +164,7 @@ name = "cuda-device" version = "0.2.1" dependencies = [ "cuda-macros", + "cuda-repr", ] [[package]] @@ -191,6 +193,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock index c663de4562..843a74f7fc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock @@ -187,6 +187,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -206,6 +207,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -235,6 +237,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock index 2586640878..03de2bf3a6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock index e112a91e22..6fbb2ce2c3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock index 042c69a6ff..fe835688cf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock index 8c6588c985..baf24e7e74 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock index 5d2015bb65..fe7021e4bd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock index d8159d700b..c1efbb457f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock index d4b0d16711..3a61bf0c22 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock index d88ec2406a..21fe07e588 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock index 866eb2575d..f5e23986c5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock index 61a1d38125..e2ca3b463a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock index 8b4eda69dc..b5959a0a41 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock index abc13c7aa2..5da1e7c5d9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock index 8126c6a9c0..50176f2024 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock index 92363e9bf2..f2b6b8f68d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock @@ -186,6 +186,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -205,6 +206,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -233,6 +235,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock index 8131fe7d04..c9603a8118 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock index 17cee04f48..55477827c6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock index f7ded9cc81..4244d5d569 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock index 6b10e589dd..9af60d6153 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock index baab5b726e..9a22d77690 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock index a7decb2105..860c152b4d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock index f5385486cb..f62f6d3148 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock index fa7a3be42d..47c8ae6b9f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock index 48528656f6..c94b89a822 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock index 58bdf1b36a..59fa79d297 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock index 8513dca1c9..4eb66efe0a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock index 22aa038500..c3a3208bf1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock index f7092be9de..c8708d3e0a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock index 425f416d15..62aa029e52 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock index 1ef0b05e2d..c6b6733809 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock index 9ea170950f..e29523a655 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock index d0b7b8a4c5..0cf62b3da4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock index 66d91b2861..c7205557db 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock index 79632e23a4..cdd0713775 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock index daac30dcfa..2a5820011e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock index 5d60c8d787..0e3e7456c8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock index 0ec620c4e9..dc72269a3b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock index c8ade400cd..341cd6a723 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock index 4f2ed9256e..c28a52220b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock index 7c372cfd1b..37ead087a5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock index be49523c04..081292e672 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock index a45a6bd509..ad5a8593f3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock index 4255ff1f35..03845eb7bd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock index 8bf6140937..d9fb1c091b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock index 06ca94f595..ba8c22ed90 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock index dc4641ec71..14da077f87 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock index 160f535ca7..51eb247c2e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock index bd1399e343..a1114bb969 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock index 279493a867..becbee7ca0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock index d82f00f521..e8e3453285 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock index 021ece1994..24a17e8039 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock index f635cf5703..8847d879a9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock index a674ee21cc..bf291fbc56 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock index b0b28c7bea..fd04b6c615 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock index 9c1e9541de..bd5ab02384 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock index e317a46f5e..b8ed7a4cd3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock index 3a62d9e398..9524d13914 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock index 48e8182bc7..abb92966f2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock index 0df03ea524..7f28b3737f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock @@ -145,6 +145,7 @@ dependencies = [ "anyhow", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -163,6 +164,7 @@ name = "cuda-device" version = "0.2.1" dependencies = [ "cuda-macros", + "cuda-repr", ] [[package]] @@ -191,6 +193,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock index 939a8ebf2d..b3a41c7052 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock index 76ef210ccd..7bac38bc3c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock index c11810670f..b1a864b375 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock index 84f53d9c99..df08e17397 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock index bae98f0086..35f68598cd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock index 71e4a11181..17d6abf8b8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock index eb281a15c1..53b2087f2d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock index a58052b8bb..01349d9956 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock index d99398ae48..ecc1613324 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock index 9e02bea5d3..7720bb52a2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock index c40c317e52..8d6c5bb87f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock index c61510ab87..e89d83786c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock index 9202c87ba1..3417e07d46 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock index d4cee5b48f..311b1c4c58 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock index f77829b685..6e65311446 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock index 25f9e180e3..88b0b831f1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock index da99c71587..a0b0f629d2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock index 3cf7b2631d..912b1be470 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock index e6cbbe34ce..4da354d0af 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock index 2b05d7f94d..f171849e7a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock index cf3df8fd08..7f247d81ff 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock index 96c356504d..84d154a33e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock index a3003c57e7..0bc677aefa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock index 21ba973255..5d0c0313d6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock index 32a308831b..1841b29d4e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock index e38e5a23a7..0a72390920 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock index a0302c6d97..7fc5716195 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock index c86e4ed6e2..6980145c20 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock @@ -145,6 +145,7 @@ dependencies = [ "anyhow", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -163,6 +164,7 @@ name = "cuda-device" version = "0.2.1" dependencies = [ "cuda-macros", + "cuda-repr", ] [[package]] @@ -176,6 +178,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock index 4d58cebe26..14f16db937 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock index a9b85ae7da..80602f7f3b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock index 32a01a1c10..4ed435c930 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock index ca5b4c14cd..80d4cf6b07 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock index c6744e7fc7..f14a7a759d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock index 1518a3a2e0..c93c6f4828 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock index 3d560f75a2..cf8398d37a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock index ca210ff3a0..7467cbbeef 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock index 6ccfbd1ccc..97820ee3a2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock index eea092d723..344e2e750d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock index 5d43d06efc..6cc9b00142 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock index 8e9c40fc65..94ff883fc6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock index 399f72fb0f..221d56063d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock index 572fc8fc98..7379970ee2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock index eb9d82a949..3f762552ec 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock index e455cf211e..23b44609cc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock index 146d88c85e..19be4e6946 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock index fd8e9842c8..3dd8d87e0c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock index 9a48f184d5..68222f25b5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock index ec0b220abb..6ba55e9aac 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock index 4b0c920945..53b1a515b1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock @@ -166,6 +166,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -185,6 +186,7 @@ version = "0.2.1" dependencies = [ "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -213,6 +215,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" diff --git a/cuda-oxide/cuda-oxide-book/gpu-programming/memory-and-data-movement.md b/cuda-oxide/cuda-oxide-book/gpu-programming/memory-and-data-movement.md index 282fcf5890..e612af429e 100644 --- a/cuda-oxide/cuda-oxide-book/gpu-programming/memory-and-data-movement.md +++ b/cuda-oxide/cuda-oxide-book/gpu-programming/memory-and-data-movement.md @@ -115,7 +115,7 @@ let results = c_dev.to_host_vec(&stream).unwrap(); | Method | Direction | Description | |:--------------------------------- |:--------------|:-------------------------------| | `from_host(&stream, &[T])` | Host → Device | Allocate + blocking copy | -| `zeroed(&stream, len)` | -- | Allocate + zero-fill | +| `zeroed(&stream, len)` | -- | Allocate + zero-fill + synchronize | | `to_host_vec(&stream)` | Device → Host | Async copy + return `Vec` | | `copy_to_host(&stream, &mut [T])` | Device → Host | Copy into existing slice | | `cu_deviceptr()` | -- | Raw `CUdeviceptr` for FFI | diff --git a/cuda-oxide/dependency-licenses.csv b/cuda-oxide/dependency-licenses.csv index 59cd4c70e5..98750baa23 100644 --- a/cuda-oxide/dependency-licenses.csv +++ b/cuda-oxide/dependency-licenses.csv @@ -12,7 +12,7 @@ awint_macro_internals,0.18.1,MIT OR Apache-2.0,Yes,registry+https://github.com/r awint_macros,0.18.1,MIT OR Apache-2.0,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/AaronKutch/awint,Accompanying procedural macros to `awint`, bindgen,0.72.1,BSD-3-Clause,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/rust-lang/rust-bindgen,Automatically generates Rust FFI bindings to C and C++ libraries.,Build-time only: generates FFI bindings for libmathdx-sys. bitflags,2.10.0,MIT OR Apache-2.0,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/bitflags/bitflags,A macro to generate structures which behave like bitflags., -bytemuck,1.25.0,Zlib OR Apache-2.0 OR MIT,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/Lokathor/bytemuck,A crate for mucking around with piles of bytes.,"Marker traits bounding DeviceBuffer's safe element casts in cuda-core (AnyBitPattern, TransparentWrapper); cuda-device implements TransparentWrapper for its atomic types." +bytemuck,1.25.0,Zlib OR Apache-2.0 OR MIT,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/Lokathor/bytemuck,A crate for mucking around with piles of bytes.,"AnyBitPattern bounds safe element casts in cuda-core; cuda-device vector types implement Pod." bytes,1.11.0,MIT,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/tokio-rs/bytes,Types and traits for working with bytes, cargo-oxide,0.2.1,Apache-2.0,Yes,local (workspace),1st Party (workspace),https://github.com/NVIDIA/cuda-rust,Cargo subcommand for cuda-oxide: build and run Rust GPU programs, cexpr,0.6.0,Apache-2.0/MIT,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/jethrogb/rust-cexpr,A C expression parser and evaluator, @@ -37,6 +37,7 @@ cuda-intrinsics,0.1.0,Apache-2.0,Yes,local (workspace),1st Party (workspace),htt cuda-intrinsics-gen,0.1.0,Apache-2.0,Yes,local (workspace),1st Party (workspace),https://github.com/NVIDIA/cuda-rust,Extractor and deterministic source generator for cuda-oxide intrinsics, cuda-macros,0.2.1,Apache-2.0,Yes,local (workspace),1st Party (workspace),https://github.com/NVIDIA/cuda-rust,"Procedural macros for CUDA kernel development (#[kernel], #[device], etc.)", cuda-oxide-codegen,0.1.0,Apache-2.0,Yes,local (workspace),1st Party (workspace),https://github.com/NVIDIA/cuda-rust,Rustc-independent cuda-oxide PTX backend, +cuda-repr,path,Apache-2.0,Yes,local (git root),1st Party (git root),https://github.com/NVIDIA/cuda-rust,Shared no_std representation contracts for CUDA host and device types,DeviceRepr permits owned-buffer relabeling without shared-reference conversions. cuda-target-spec,0.1.0,Apache-2.0,Yes,local (workspace),1st Party (workspace),https://github.com/NVIDIA/cuda-rust,Shared CUDA target parsing and recorded LLVM PTX-floor policy, dashmap,6.2.1,MIT,Yes,registry+https://github.com/rust-lang/crates.io-index,3rd Party (crates.io),https://github.com/xacrimon/dashmap,Blazing fast concurrent HashMap for Rust.,Pulled by the shared cuda-async (cutile-rs). device-only-kernels,0.0.0,Apache-2.0,Yes,local (workspace),1st Party (workspace),https://github.com/NVIDIA/cuda-rust,"INTERNAL: fixture for scripts/check-device-only-build.sh, proving the macro expansion resolves with no cuda-host in the graph. Not published.",Declares its own [workspace] so it resolves independently of the root lock. diff --git a/cuda-repr/Cargo.toml b/cuda-repr/Cargo.toml new file mode 100644 index 0000000000..a03693164b --- /dev/null +++ b/cuda-repr/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "cuda-repr" +version = "0.4.0" +edition = "2021" +rust-version = "1.89" +license = "Apache-2.0" +authors = ["Melih Elibol"] +repository = "https://github.com/NVIDIA/cuda-rust" +description = "Representation contracts shared by CUDA host and device types" diff --git a/cuda-repr/src/lib.rs b/cuda-repr/src/lib.rs new file mode 100644 index 0000000000..7a7863dc22 --- /dev/null +++ b/cuda-repr/src/lib.rs @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +//! Representation contracts shared by host buffers and device element types. +//! +//! This crate has no dependencies and builds without a CUDA toolkit or `std`. + +#![no_std] + +/// An element representation that can replace `Inner` in an owned device buffer. +/// +/// This marker permits a buffer owner to change its element type without moving +/// or copying the allocation. It does **not** permit converting references: +/// for example, an atomic wrapper allows mutation through a shared reference, +/// whereas a shared reference to its ordinary integer representation does not. +/// Neither type is required to implement `Copy`. +/// +/// # Safety +/// +/// - `Self` and `Inner` must have identical size and alignment on both host and +/// device, with matching representations across those targets. +/// - Every valid initialized representation of either type must be a valid +/// initialized representation of the other, in both directions. Padding in +/// one type must not become an uninitialized value byte in the other. +/// - Neither representation may require element destruction. Changing between +/// them must not introduce ownership obligations, such as new ownership of +/// allocations or reference counts. +/// +/// Consumers must preserve allocation ownership and lifetimes, and must uphold +/// borrowing and synchronization requirements when switching access modes. +/// This trait provides no reference conversions and no synchronization. +pub unsafe trait DeviceRepr: Sized {} + +// SAFETY: Wrapping is transparent over T with the same representations and +// ownership obligations. Copy excludes destruction in either representation. +unsafe impl DeviceRepr for core::num::Wrapping {} diff --git a/cutile-rs/CHANGELOG.md b/cutile-rs/CHANGELOG.md index e0c59ab52a..61a62c48fe 100644 --- a/cutile-rs/CHANGELOG.md +++ b/cutile-rs/CHANGELOG.md @@ -9,6 +9,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ### Fixed +- `DeviceBuffer::zeroed` waits for initialization to finish before returning, + so another stream cannot read uninitialized element representations. +- Atomic buffer conversions use `DeviceRepr` instead of `TransparentWrapper`, + preserving owned-buffer conversions without permitting invalid shared-reference + conversions between atomics and their scalar representations. - `Tensor::reinterpret` requires the target element type to implement `bytemuck::AnyBitPattern`. Reinterpreting byte storage as `Tensor` could expose values other than `0` and `1`, which is undefined behavior diff --git a/cutile-rs/Cargo.lock b/cutile-rs/Cargo.lock index 9828c2e3e7..605a4e7fba 100644 --- a/cutile-rs/Cargo.lock +++ b/cutile-rs/Cargo.lock @@ -447,6 +447,7 @@ dependencies = [ "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -460,6 +461,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cuda-tile-rs" version = "0.4.0" diff --git a/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/Cargo.lock b/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/Cargo.lock index 04b0a86b92..80542e4da3 100644 --- a/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/Cargo.lock +++ b/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/Cargo.lock @@ -184,9 +184,14 @@ version = "0.2.0" dependencies = [ "anyhow", "cuda-bindings", + "cuda-repr", "half", ] +[[package]] +name = "cuda-repr" +version = "0.4.0" + [[package]] name = "cutile" version = "0.2.0" From 787e241faf1e388e6c1bc69dcc70169fd30dc344 Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:39:17 -0700 Subject: [PATCH 03/17] Refresh remaining SIMT example locks for bytemuck Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- .../cutile_inter_kernel/simt/Cargo.lock | 23 +++++++++++++++++++ .../error_kernel_shared_ptr_param/Cargo.lock | 23 +++++++++++++++++++ .../Cargo.lock | 23 +++++++++++++++++++ .../Cargo.lock | 23 +++++++++++++++++++ .../examples/inline_intent/Cargo.lock | 23 +++++++++++++++++++ .../interop_cubin_identity/device/Cargo.lock | 23 +++++++++++++++++++ .../examples/shared_ptr_api/Cargo.lock | 23 +++++++++++++++++++ .../examples/tilelib_relu/Cargo.lock | 23 +++++++++++++++++++ 8 files changed, 184 insertions(+) diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock index 971ab80c80..8c80a6e505 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "cuda-repr", @@ -163,6 +184,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", "cuda-repr", ] @@ -270,6 +292,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock index 861faf0e5b..574bca94bf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "cuda-repr", @@ -163,6 +184,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", "cuda-repr", ] @@ -270,6 +292,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock index 4e2d1ed77f..fbc1ec03b3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "cuda-repr", @@ -163,6 +184,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", "cuda-repr", ] @@ -270,6 +292,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock index 364bc8f1ca..d1ec30fc3d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "cuda-repr", @@ -163,6 +184,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", "cuda-repr", ] @@ -270,6 +292,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock index 5deb7ab62f..24874ba05a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "cuda-repr", @@ -163,6 +184,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", "cuda-repr", ] @@ -261,6 +283,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock index 9456e4eff4..15d374f270 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "cuda-repr", @@ -163,6 +184,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", "cuda-repr", ] @@ -261,6 +283,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock index 7f28b3737f..34a8f73787 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "cuda-repr", @@ -163,6 +184,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", "cuda-repr", ] @@ -261,6 +283,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock index 6980145c20..d4940ca705 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,6 +163,7 @@ name = "cuda-core" version = "0.4.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", "cuda-repr", @@ -163,6 +184,7 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", "cuda-repr", ] @@ -246,6 +268,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", From 228652d381c94d70eb6ee1b2481261bc8810624e Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Wed, 21 Oct 2026 10:47:16 -0700 Subject: [PATCH 04/17] Align DeviceCopy derive diagnostics with the validity contract Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- cuda-core-derive/src/device_copy.rs | 26 +++++++------------ .../tests/derive_device_copy/fail_enum.stderr | 2 +- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/cuda-core-derive/src/device_copy.rs b/cuda-core-derive/src/device_copy.rs index e33ff15a1f..c0477b369f 100644 --- a/cuda-core-derive/src/device_copy.rs +++ b/cuda-core-derive/src/device_copy.rs @@ -20,28 +20,22 @@ pub fn impl_device_copy(input: &DeriveInput, import: TokenStream) -> TokenStream // type-bound on DeviceCopy and call it with every type that's in the struct/union. // This will fail to compile if any of the nested types doesn't implement DeviceCopy. // - // Enums are deliberately rejected: `DeviceCopy`'s safety contract requires - // every bit pattern, including the all-zero pattern written by - // `DeviceBuffer::zeroed`, to be a valid value of the type. That holds for - // product types (structs/unions) when every field is `DeviceCopy`, but NOT - // for enums, whose discriminant leaves most byte patterns invalid. A zeroed - // or device-written buffer could then materialize an out-of-range - // discriminant (undefined behavior). This is the same reason `bool`, `char`, - // and `NonZeroU32` are not `DeviceCopy`. Per-field checking is necessary but - // not sufficient for enums, so we refuse rather than emit an unsound impl. + // Enums need more than field checks: the all-zero representation must also + // select a valid discriminant and payload. This derive does not analyze + // enum layouts, so it conservatively rejects them. DeviceCopy does not + // require every bit pattern to be valid (bool implements it); an enum with + // a valid zero representation can have a manually justified unsafe impl. let check_types_code = match input.data { Data::Struct(ref data_struct) => type_check_struct(data_struct), Data::Union(ref data_union) => type_check_union(data_union), Data::Enum(_) => { return syn::Error::new_spanned( input_type, - "`#[derive(DeviceCopy)]` cannot be applied to enums: `DeviceCopy` requires \ - every bit pattern (including the all-zero pattern written by \ - `DeviceBuffer::zeroed`) to be a valid value, but an enum's discriminant \ - leaves most byte patterns invalid, so a zeroed or device-written buffer \ - could materialize an out-of-range discriminant (undefined behavior). If you \ - can guarantee every device-produced byte pattern is a valid variant, write \ - `unsafe impl DeviceCopy for ... {}` by hand.", + "`#[derive(DeviceCopy)]` cannot be applied to enums: this derive cannot \ + prove that the all-zero representation selects a valid discriminant and \ + payload. `DeviceCopy` requires byte-copyable values and a valid all-zero \ + representation, but not validity of every bit pattern. If the enum meets \ + the full safety contract, write `unsafe impl DeviceCopy for ... {}` by hand.", ) .to_compile_error(); } diff --git a/cuda-core/tests/derive_device_copy/fail_enum.stderr b/cuda-core/tests/derive_device_copy/fail_enum.stderr index de29338391..021b4ddbec 100644 --- a/cuda-core/tests/derive_device_copy/fail_enum.stderr +++ b/cuda-core/tests/derive_device_copy/fail_enum.stderr @@ -1,4 +1,4 @@ -error: `#[derive(DeviceCopy)]` cannot be applied to enums: `DeviceCopy` requires every bit pattern (including the all-zero pattern written by `DeviceBuffer::zeroed`) to be a valid value, but an enum's discriminant leaves most byte patterns invalid, so a zeroed or device-written buffer could materialize an out-of-range discriminant (undefined behavior). If you can guarantee every device-produced byte pattern is a valid variant, write `unsafe impl DeviceCopy for ... {}` by hand. +error: `#[derive(DeviceCopy)]` cannot be applied to enums: this derive cannot prove that the all-zero representation selects a valid discriminant and payload. `DeviceCopy` requires byte-copyable values and a valid all-zero representation, but not validity of every bit pattern. If the enum meets the full safety contract, write `unsafe impl DeviceCopy for ... {}` by hand. --> tests/derive_device_copy/fail_enum.rs:12:6 | 12 | enum Tag { From 2788c6c828d080cbfe814a179d8c6eba4db57629 Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Wed, 21 Oct 2026 11:27:29 -0700 Subject: [PATCH 05/17] fix: enforce Tile argument contracts and pinned host alignment Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- cuda-core/src/simt/pinned_host_buffer.rs | 70 +++++++++++++--- cuda-core/tests/simt_pinned_host_buffer.rs | 63 +++++++++++++++ cutile-rs/CHANGELOG.md | 6 ++ cutile-rs/cutile/src/tensor.rs | 80 ++++++++++++++++--- cutile-rs/cutile/tests/ui.rs | 7 ++ .../ui/kernel_input_stored_requires_unsafe.rs | 43 ++++++++++ ...kernel_input_stored_requires_unsafe.stderr | 11 +++ .../kernel_output_stored_requires_unsafe.rs | 76 ++++++++++++++++++ ...ernel_output_stored_requires_unsafe.stderr | 11 +++ 9 files changed, 343 insertions(+), 24 deletions(-) create mode 100644 cutile-rs/cutile/tests/ui/kernel_input_stored_requires_unsafe.rs create mode 100644 cutile-rs/cutile/tests/ui/kernel_input_stored_requires_unsafe.stderr create mode 100644 cutile-rs/cutile/tests/ui/kernel_output_stored_requires_unsafe.rs create mode 100644 cutile-rs/cutile/tests/ui/kernel_output_stored_requires_unsafe.stderr diff --git a/cuda-core/src/simt/pinned_host_buffer.rs b/cuda-core/src/simt/pinned_host_buffer.rs index f39d823d82..1795eaaff5 100644 --- a/cuda-core/src/simt/pinned_host_buffer.rs +++ b/cuda-core/src/simt/pinned_host_buffer.rs @@ -25,7 +25,9 @@ use crate::simt::device_buffer::DeviceCopy; /// Owned page-locked host buffer. /// /// The buffer is initialized and exposes normal Rust slices. The backing -/// allocation is freed with `cuMemFreeHost` on drop. +/// allocation is freed with `cuMemFreeHost` on drop. Extra space is reserved +/// when needed to align the elements, even for types whose alignment exceeds +/// CUDA's host-allocation alignment. /// /// Pinned transfer buffers require `T: DeviceCopy`, so host-owned values such /// as [`String`] are rejected. @@ -38,6 +40,8 @@ use crate::simt::device_buffer::DeviceCopy; /// ``` pub struct PinnedHostBuffer { ptr: NonNull, + // CUDA must free the original allocation, not the aligned interior pointer. + allocation: Option>, len: usize, num_bytes: usize, ctx: Arc, @@ -123,19 +127,28 @@ impl PinnedHostBuffer { } fn allocate(ctx: &Arc, len: usize) -> Result { - let num_bytes = allocation_size::(len)?; - let ptr = if num_bytes == 0 { - NonNull::dangling() + let (num_bytes, allocation_bytes) = allocation_sizes::(len)?; + let (ptr, allocation) = if num_bytes == 0 { + (NonNull::dangling(), None) } else { ctx.bind_to_thread()?; - let ptr = unsafe { crate::simt::memory::malloc_host(num_bytes)? }; - NonNull::new(ptr.cast::()).ok_or(DriverError( + let raw = unsafe { crate::simt::memory::malloc_host(allocation_bytes)? }; + let allocation = NonNull::new(raw.cast::()).ok_or(DriverError( cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE, - ))? + ))?; + let offset = allocation.as_ptr().align_offset(std::mem::align_of::()); + // SAFETY: for a byte pointer, align_offset is at most align_of::() + // - 1. allocation_sizes reserves that much slack, leaving num_bytes + // accessible after this aligned, non-null interior pointer. The + // entire allocation fits in isize::MAX for pointer arithmetic. + let ptr = + unsafe { NonNull::new_unchecked(allocation.as_ptr().add(offset).cast::()) }; + (ptr, Some(allocation)) }; Ok(Self { ptr, + allocation, len, num_bytes, ctx: ctx.clone(), @@ -146,10 +159,10 @@ impl PinnedHostBuffer { impl Drop for PinnedHostBuffer { fn drop(&mut self) { - if self.num_bytes != 0 { + if let Some(allocation) = self.allocation { self.ctx.record_err(self.ctx.bind_to_thread()); self.ctx - .record_err(unsafe { crate::simt::memory::free_host(self.ptr.as_ptr().cast()) }); + .record_err(unsafe { crate::simt::memory::free_host(allocation.as_ptr().cast()) }); } } } @@ -191,8 +204,39 @@ impl DerefMut for PinnedHostBuffer { } } -fn allocation_size(len: usize) -> Result { - len.checked_mul(std::mem::size_of::()).ok_or(DriverError( - cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE, - )) +fn allocation_sizes(len: usize) -> Result<(usize, usize), DriverError> { + let invalid_size = DriverError(cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE); + // Rust slices and pointer arithmetic require sizes bounded by isize::MAX, + // even when len * size_of::() would fit in usize. + let layout = std::alloc::Layout::array::(len).map_err(|_| invalid_size)?; + let num_bytes = layout.size(); + if num_bytes == 0 { + return Ok((0, 0)); + } + let allocation_bytes = num_bytes + .checked_add(layout.align() - 1) + .filter(|&size| size <= isize::MAX as usize) + .ok_or(invalid_size)?; + Ok((num_bytes, allocation_bytes)) +} + +#[cfg(test)] +mod tests { + use super::allocation_sizes; + + #[test] + fn rejects_sizes_that_cannot_form_a_rust_slice() { + assert!(allocation_sizes::(isize::MAX as usize + 1).is_err()); + assert!(allocation_sizes::(usize::MAX).is_err()); + assert_eq!( + allocation_sizes::(isize::MAX as usize).unwrap(), + (isize::MAX as usize, isize::MAX as usize) + ); + } + + #[test] + fn empty_and_zero_sized_buffers_need_no_allocation() { + assert_eq!(allocation_sizes::(0).unwrap(), (0, 0)); + assert_eq!(allocation_sizes::<()>(usize::MAX).unwrap(), (0, 0)); + } } diff --git a/cuda-core/tests/simt_pinned_host_buffer.rs b/cuda-core/tests/simt_pinned_host_buffer.rs index 5ef153303b..fa069bf7a8 100644 --- a/cuda-core/tests/simt_pinned_host_buffer.rs +++ b/cuda-core/tests/simt_pinned_host_buffer.rs @@ -125,3 +125,66 @@ fn device_buffer_can_be_refilled_from_pinned_host_async() { assert_eq!(output.as_slice(), &payload); } } + +// CUDA's page alignment alone does not satisfy every valid Rust element layout. +#[repr(C, align(1048576))] +#[derive(Clone, Copy, cuda_core::DeviceCopy)] +struct Overaligned([u8; 1048576]); + +#[test] +fn pinned_host_buffer_aligns_elements() { + let ctx = CudaContext::new(0).expect("failed to create CUDA context"); + // Keep a small allocation alive to exercise non-MiB-aligned CUDA allocations. + let _prefix = PinnedHostBuffer::::zeroed(&ctx, 4096).unwrap(); + let mut buffers = Vec::new(); + for _ in 0..8 { + let mut host = PinnedHostBuffer::::zeroed(&ctx, 1).unwrap(); + // Check before forming any references, so the regression fails without UB. + assert!(host.as_ptr().is_aligned()); + assert_eq!(host.num_bytes(), std::mem::size_of::()); + for element in host.as_slice() { + assert!(element.0.iter().all(|&byte| byte == 0)); + } + host.as_mut_slice()[0].0.fill(42); + assert!(host.as_slice()[0].0.iter().all(|&byte| byte == 42)); + buffers.push(host); + } + drop(buffers); + ctx.check_err().expect("failed to free pinned allocations"); +} + +#[test] +fn pinned_host_buffer_copies_overaligned_elements() { + let ctx = CudaContext::new(0).expect("failed to create CUDA context"); + // Initialize on the heap to avoid putting MiB-sized values on the stack. + let mut source = PinnedHostBuffer::::zeroed(&ctx, 2).unwrap(); + source.as_mut_slice()[0].0.fill(17); + source.as_mut_slice()[1].0.fill(42); + let copied = PinnedHostBuffer::from_slice(&ctx, source.as_slice()).unwrap(); + assert!(copied.as_ptr().is_aligned()); + assert_eq!(copied.len(), 2); + assert_eq!(copied.num_bytes(), 2 * std::mem::size_of::()); + assert!(copied.as_slice()[0].0.iter().all(|&byte| byte == 17)); + assert!(copied.as_slice()[1].0.iter().all(|&byte| byte == 42)); + drop((copied, source)); + ctx.check_err().expect("failed to free pinned allocations"); +} + +#[repr(align(1048576))] +#[derive(Clone, Copy, cuda_core::DeviceCopy)] +struct AlignedZst; + +#[test] +fn empty_and_zero_sized_pinned_buffers_preserve_alignment() { + let ctx = CudaContext::new(0).expect("failed to create CUDA context"); + let empty = PinnedHostBuffer::::zeroed(&ctx, 0).unwrap(); + assert!(empty.as_ptr().is_aligned()); + assert!(empty.as_slice().is_empty()); + let mut zst = PinnedHostBuffer::::zeroed(&ctx, 8).unwrap(); + assert!(zst.as_ptr().is_aligned()); + assert_eq!(zst.num_bytes(), 0); + assert_eq!(zst.as_mut_slice().len(), 8); + let copied = PinnedHostBuffer::from_slice(&ctx, zst.as_slice()).unwrap(); + assert!(copied.as_ptr().is_aligned()); + assert_eq!(copied.as_slice().len(), 8); +} diff --git a/cutile-rs/CHANGELOG.md b/cutile-rs/CHANGELOG.md index 61a62c48fe..ff35e8575a 100644 --- a/cutile-rs/CHANGELOG.md +++ b/cutile-rs/CHANGELOG.md @@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ### Fixed +- Host-side `KernelInputStored` and `KernelOutputStored` require `unsafe impl` + with explicit type, ABI, extent, retention, and access obligations. Safe custom + bindings can no longer mislabel boolean storage as byte kernel arguments. +- `PinnedHostBuffer` aligns its usable pointer for the element type and frees + the original CUDA allocation. Highly aligned host elements no longer produce + misaligned Rust slices; sizes exceeding Rust's slice limits are rejected. - `DeviceBuffer::zeroed` waits for initialization to finish before returning, so another stream cannot read uninitialized element representations. - Atomic buffer conversions use `DeviceRepr` instead of `TransparentWrapper`, diff --git a/cutile-rs/cutile/src/tensor.rs b/cutile-rs/cutile/src/tensor.rs index c364ea338d..845af6c6c1 100644 --- a/cutile-rs/cutile/src/tensor.rs +++ b/cutile-rs/cutile/src/tensor.rs @@ -1870,7 +1870,26 @@ pub enum GridBound { AtMost((u32, u32, u32)), } -pub trait KernelOutputStored: Send { +/// A host-side output binding trusted by generated Tile kernel launchers. +/// +/// # Safety +/// +/// Implementations must report the actual element type (`T::DTYPE`), shape, +/// strides, partition mapping, grid constraints, and specialization facts of +/// their storage. These facts must agree with the arguments emitted by +/// `push_kernel_args`, in the tensor/partition ABI expected by the launcher. +/// Pointers must be correctly aligned and cover every element reachable by a +/// launch accepted by those constraints; initialized elements must be valid `T` +/// values. Metadata must remain consistent throughout validation and submission. +/// +/// Before returning success, `retain` must validate context compatibility and +/// register storage ownership and exclusive device access with `ctx`, including +/// graph replay retention when capturing. These protections must last until GPU +/// completion even if this binding or its future is dropped or forgotten. A +/// Rust borrow or ownership of the binding alone is insufficient. In particular, +/// relabelling a `Tensor` as byte output is unsound: a byte kernel could +/// write an invalid boolean representation. +pub unsafe trait KernelOutputStored: Send { /// Retain storage and acquire exclusive device access before enqueueing. fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError>; fn push_kernel_args(&self, launcher: &mut AsyncKernelLaunch); @@ -1900,6 +1919,9 @@ pub trait KernelOutputStored: Send { /// | `Partition>` | `Partition>` | `Partition>` | /// | `Partition<&'a mut Tensor>` | `Partition<&'a mut Tensor>` | `Partition<&'a mut Tensor>` | /// | `MappedLaunchPartition>` | `MappedLaunchPartition>` | `Partition<..>` | +/// +/// This conversion trait is safe to implement; its stored form must satisfy +/// the unsafe host-side [`KernelOutputStored`] contract. pub trait KernelOutput: Send + Sized { type Stored: KernelOutputStored; type Returned: Send; @@ -1907,7 +1929,10 @@ pub trait KernelOutput: Send + Sized { fn recover(stored: Self::Stored) -> Self::Returned; } -impl KernelOutputStored for Partition> { +// SAFETY: metadata and arguments come from the same typed tensor and partition. +// Storage::retain registers its owner and exclusive access for the submission +// (or graph replay), independently of this binding's lifetime. +unsafe impl KernelOutputStored for Partition> { fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError> { self.object.storage.retain(ctx, true) } @@ -1965,7 +1990,10 @@ impl KernelOutputStored for Partition> { } } -impl KernelOutputStored for Partition<&mut Tensor> { +// SAFETY: the typed tensor/partition supplies the metadata and ABI arguments. +// Storage::retain keeps the owner and exclusive access alive independently of +// the mutable borrow, including when a pending submission is abandoned. +unsafe impl KernelOutputStored for Partition<&mut Tensor> { fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError> { self.object.storage.retain(ctx, true) } @@ -2023,7 +2051,9 @@ impl KernelOutputStored for Partition<&mut Tensor> { } } -impl KernelOutputStored for MappedLaunchPartition>> { +// SAFETY: storage, metadata and arguments delegate to the trusted partition; +// validate checks the map against its logical grid and physical block count. +unsafe impl KernelOutputStored for MappedLaunchPartition>> { fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError> { self.partition.retain(ctx) } @@ -2063,7 +2093,9 @@ impl KernelOutputStored for MappedLaunchPartition KernelOutputStored for MappedLaunchPartition>> { +// SAFETY: delegates retention and ABI facts to the trusted borrowed partition; +// validate checks the mapping without weakening storage lifetime or access. +unsafe impl KernelOutputStored for MappedLaunchPartition>> { fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError> { self.partition.retain(ctx) } @@ -2156,11 +2188,27 @@ impl<'a, T: DType> KernelOutput for MappedLaunchPartition> satisfy // the orphan rule — both trait and Tensor are in the same crate. -/// How a stored kernel input pushes its arguments to the launcher. +/// How a host-side stored kernel input pushes its arguments to the launcher. /// -/// Implemented for `Arc>` and `&Tensor`. Both push the same +/// Implemented for `Arc>`, `&Tensor`, and tensor views. They push /// data: device pointer, shape, and strides. -pub trait KernelInputStored: Send { +/// +/// # Safety +/// +/// `dtype_str`, shape, strides, and specialization facts must describe the +/// actual initialized element representations and agree with the tensor ABI +/// arguments emitted by `push_kernel_args`. Pointers, including view offsets, +/// must be correctly aligned and all elements reachable through the reported +/// shape/strides must be in bounds. Metadata must remain consistent throughout +/// validation and submission. The launcher checks the reported dtype against +/// the kernel type; it cannot verify that an implementation reported it honestly. +/// +/// Before returning success, `retain` must validate context compatibility and +/// register storage ownership and shared device access with `ctx`, including +/// graph replay retention when capturing. Storage and access protection must +/// survive until GPU completion even if the binding or future is dropped or +/// forgotten; borrowing the input or holding it in the binding is insufficient. +pub unsafe trait KernelInputStored: Send { /// Retain storage and acquire shared device access before enqueueing. fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError>; fn push_kernel_args(&self, launcher: &mut AsyncKernelLaunch); @@ -2178,6 +2226,9 @@ pub trait KernelInputStored: Send { /// | `Tensor` | `Arc>` | `Tensor` | Yes | /// | `Arc>` | `Arc>` | `Arc>` | Yes | /// | `&'a Tensor` | `&'a Tensor` | `&'a Tensor` | No | +/// +/// This conversion trait is safe to implement; its stored form must satisfy +/// the unsafe host-side [`KernelInputStored`] contract. pub trait KernelInput: Send + Sized { type Stored: KernelInputStored; type Returned: Send; @@ -2187,7 +2238,9 @@ pub trait KernelInput: Send + Sized { // ── KernelInputStored impls ───────────────────────────────────────────────── -impl KernelInputStored for Arc> { +// SAFETY: the typed tensor supplies all ABI and specialization facts, and +// Storage::retain independently holds its owner and shared access until completion. +unsafe impl KernelInputStored for Arc> { fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError> { self.storage.retain(ctx, false) } @@ -2216,7 +2269,9 @@ impl KernelInputStored for Arc> { } } -impl KernelInputStored for &Tensor { +// SAFETY: arguments describe the borrowed typed tensor, and Storage::retain +// registers its owner and shared access independently of this Rust borrow. +unsafe impl KernelInputStored for &Tensor { fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError> { self.storage.retain(ctx, false) } @@ -2282,7 +2337,10 @@ impl<'a, T: DType + Sync> KernelInput for &'a Tensor { // ── TensorView KernelInput impls ──────────────────────────────────────────── -impl<'a, T: DType + Sync> KernelInputStored for &'a TensorView<'a, T> { +// SAFETY: view construction validates the offset/extent and preserves element +// alignment. Arguments use that offset and the view's shape/strides/spec; +// retention protects the base allocation and shared access until completion. +unsafe impl<'a, T: DType + Sync> KernelInputStored for &'a TensorView<'a, T> { fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError> { self.base.storage.retain(ctx, false) } diff --git a/cutile-rs/cutile/tests/ui.rs b/cutile-rs/cutile/tests/ui.rs index b812e1281b..e6ec5d8ccf 100644 --- a/cutile-rs/cutile/tests/ui.rs +++ b/cutile-rs/cutile/tests/ui.rs @@ -31,3 +31,10 @@ fn ui() { // cannot become a `Tensor`, whose only valid values are 0 and 1. t.compile_fail("tests/ui/reinterpret_bool.rs"); } + +#[test] +fn stored_kernel_arguments_require_unsafe_impl() { + let t = trybuild::TestCases::new(); + t.compile_fail("tests/ui/kernel_output_stored_requires_unsafe.rs"); + t.compile_fail("tests/ui/kernel_input_stored_requires_unsafe.rs"); +} diff --git a/cutile-rs/cutile/tests/ui/kernel_input_stored_requires_unsafe.rs b/cutile-rs/cutile/tests/ui/kernel_input_stored_requires_unsafe.rs new file mode 100644 index 0000000000..3894e4d2ea --- /dev/null +++ b/cutile-rs/cutile/tests/ui/kernel_input_stored_requires_unsafe.rs @@ -0,0 +1,43 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +// A safe implementation must not relabel arbitrary bytes as boolean input. +use cutile::cuda_async::{ + device_operation::ExecutionContext, error::DeviceError, launch::AsyncKernelLaunch, +}; +use cutile::cutile_compiler::specialization::SpecializationBits; +use cutile::tensor::{KernelInput, KernelInputStored, Tensor}; +use std::sync::Arc; + +struct Mislabelled(Arc>); +impl KernelInputStored for Mislabelled { + fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError> { + self.0.retain(ctx) + } + fn push_kernel_args(&self, launch: &mut AsyncKernelLaunch) { + self.0.push_kernel_args(launch); + } + fn shape(&self) -> &[i32] { + self.0.shape() + } + fn strides(&self) -> &[i32] { + self.0.strides() + } + fn spec(&self) -> &SpecializationBits { + self.0.spec() + } + fn dtype_str(&self) -> &'static str { + "bool" + } +} +impl KernelInput for Mislabelled { + type Stored = Self; + type Returned = Arc>; + fn prepare(self) -> Self { + self + } + fn recover(stored: Self) -> Self::Returned { + stored.0 + } +} +fn main() {} diff --git a/cutile-rs/cutile/tests/ui/kernel_input_stored_requires_unsafe.stderr b/cutile-rs/cutile/tests/ui/kernel_input_stored_requires_unsafe.stderr new file mode 100644 index 0000000000..6cf49aa257 --- /dev/null +++ b/cutile-rs/cutile/tests/ui/kernel_input_stored_requires_unsafe.stderr @@ -0,0 +1,11 @@ +error[E0200]: the trait `KernelInputStored` requires an `unsafe impl` declaration + --> tests/ui/kernel_input_stored_requires_unsafe.rs:13:1 + | +13 | impl KernelInputStored for Mislabelled { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: the trait `KernelInputStored` enforces invariants that the compiler can't check. Review the trait documentation and make sure this implementation upholds those invariants before adding the `unsafe` keyword +help: add `unsafe` to this trait implementation + | +13 | unsafe impl KernelInputStored for Mislabelled { + | ++++++ diff --git a/cutile-rs/cutile/tests/ui/kernel_output_stored_requires_unsafe.rs b/cutile-rs/cutile/tests/ui/kernel_output_stored_requires_unsafe.rs new file mode 100644 index 0000000000..e618811af4 --- /dev/null +++ b/cutile-rs/cutile/tests/ui/kernel_output_stored_requires_unsafe.rs @@ -0,0 +1,76 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +// A safe implementation must not relabel boolean storage as u8 kernel output. +use cuda_async::{ + device_operation::{value, DeviceOp, ExecutionContext}, + error::DeviceError, + launch::AsyncKernelLaunch, +}; +use cutile::cutile_compiler::specialization::SpecializationBits; +use cutile::error::Error; +use cutile::tensor::{ + IntoPartition, KernelOutput, KernelOutputStored, Partition, Tensor, ToHostVec, +}; +use cutile::{api, cuda_async}; +use std::sync::Arc; + +struct Mislabelled(Partition>); +impl KernelOutputStored for Mislabelled { + fn retain(&self, ctx: &ExecutionContext) -> Result<(), DeviceError> { + self.0.retain(ctx) + } + fn push_kernel_args(&self, launch: &mut AsyncKernelLaunch) { + self.0.push_kernel_args(launch); + } + fn grid(&self) -> Result<(u32, u32, u32), Error> { + self.0.grid() + } + fn dtype_str(&self) -> &'static str { + "u8" + } + fn partition_shape_as_i32(&self) -> Vec { + self.0.partition_shape_as_i32() + } + fn partition_shape(&self) -> &[usize] { + KernelOutputStored::partition_shape(&self.0) + } + fn strides_hint(&self) -> Vec { + self.0.strides_hint() + } + fn spec(&self) -> &SpecializationBits { + self.0.spec() + } + fn shape_as_i32(&self) -> Vec { + self.0.shape_as_i32() + } +} +impl KernelOutput for Mislabelled { + type Stored = Self; + type Returned = Partition>; + fn prepare(self) -> Self { + self + } + fn recover(stored: Self) -> Self::Returned { + stored.0 + } +} +fn main() { + let output = api::copy_host_vec_to_device(&Arc::new(vec![false; 128])) + .sync() + .unwrap(); + let (_, output) = + cutile::kernels::creation::full(2_u8, value(Mislabelled(output.partition([128])))) + .sync() + .unwrap(); + let output: Arc> = Arc::new(output.unpartition()); + // Inspect bytes via AnyBitPattern u8. Never materialize invalid Rust bools. + let bytes = output + .reinterpret::(&[128]) + .unwrap() + .to_host_vec() + .sync() + .unwrap(); + println!("Tensor after safe u8 kernel: {:?}", &bytes[..8]); + assert!(bytes.iter().all(|&b| b == 2)); +} diff --git a/cutile-rs/cutile/tests/ui/kernel_output_stored_requires_unsafe.stderr b/cutile-rs/cutile/tests/ui/kernel_output_stored_requires_unsafe.stderr new file mode 100644 index 0000000000..37706dbe59 --- /dev/null +++ b/cutile-rs/cutile/tests/ui/kernel_output_stored_requires_unsafe.stderr @@ -0,0 +1,11 @@ +error[E0200]: the trait `KernelOutputStored` requires an `unsafe impl` declaration + --> tests/ui/kernel_output_stored_requires_unsafe.rs:19:1 + | +19 | impl KernelOutputStored for Mislabelled { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: the trait `KernelOutputStored` enforces invariants that the compiler can't check. Review the trait documentation and make sure this implementation upholds those invariants before adding the `unsafe` keyword +help: add `unsafe` to this trait implementation + | +19 | unsafe impl KernelOutputStored for Mislabelled { + | ++++++ From 98c023dba9ca6dedf2f9f6ea938e07cad23858a3 Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Wed, 21 Oct 2026 16:08:54 -0700 Subject: [PATCH 06/17] ci: validate interop stack against the v0.5.0 API boundary Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- .github/workflows/book.yml | 3 ++- .github/workflows/ci.yml | 3 ++- .github/workflows/codeql.yml | 3 ++- .github/workflows/docs.yml | 3 ++- .github/workflows/examples-compile.yml | 3 ++- .github/workflows/naming-guard.yml | 3 ++- .github/workflows/status-guard.yml | 3 ++- Cargo.lock | 10 +++---- cuda-async/Cargo.toml | 6 ++--- cuda-bindings/Cargo.toml | 2 +- cuda-core-derive/Cargo.toml | 2 +- cuda-core/Cargo.toml | 8 +++--- cuda-oxide/Cargo.lock | 10 +++---- cuda-oxide/crates/cuda-device/Cargo.toml | 2 +- .../cuda-macros/tests/device-only/Cargo.lock | 2 +- .../examples/abi_hmm/Cargo.lock | 8 +++--- .../examples/addressof_sharedarray/Cargo.lock | 8 +++--- .../examples/aligned_field_loads/Cargo.lock | 8 +++--- .../examples/aligned_field_stores/Cargo.lock | 8 +++--- .../examples/array_constants/Cargo.lock | 8 +++--- .../examples/array_for_loop/Cargo.lock | 8 +++--- .../examples/array_index/Cargo.lock | 8 +++--- .../examples/array_init/Cargo.lock | 8 +++--- .../examples/asin_acos_smoke/Cargo.lock | 8 +++--- .../assume_init_uninhabited_trap/Cargo.lock | 8 +++--- .../examples/async_mlp/Cargo.lock | 10 +++---- .../examples/async_vecadd/Cargo.lock | 10 +++---- .../examples/atomic_f16/Cargo.lock | 8 +++--- .../examples/atomics/Cargo.lock | 8 +++--- .../examples/barrier/Cargo.lock | 8 +++--- .../examples/bf16x2_arith/Cargo.lock | 8 +++--- .../examples/bf16x2_fma/Cargo.lock | 8 +++--- .../examples/bool_phi_cmp/Cargo.lock | 8 +++--- .../examples/carrying_mul_add/Cargo.lock | 8 +++--- .../examples/cast_chunks/Cargo.lock | 8 +++--- .../examples/cast_tests/Cargo.lock | 8 +++--- .../examples/cbrt_smoke/Cargo.lock | 8 +++--- .../examples/checked_arith/Cargo.lock | 8 +++--- .../examples/clc/Cargo.lock | 8 +++--- .../examples/cluster/Cargo.lock | 8 +++--- .../examples/compiler_features/Cargo.lock | 8 +++--- .../examples/complex_mul/Cargo.lock | 8 +++--- .../examples/const_aggregate/Cargo.lock | 8 +++--- .../const_bool_dead_branch/Cargo.lock | 8 +++--- .../examples/const_generic/Cargo.lock | 8 +++--- .../examples/const_table_lookup/Cargo.lock | 8 +++--- .../const_tuple_table_lookup/Cargo.lock | 8 +++--- .../constant_index_from_end/Cargo.lock | 8 +++--- .../examples/constant_memory/Cargo.lock | 8 +++--- .../constant_memory_coeffs/Cargo.lock | 8 +++--- .../constant_memory_simple/Cargo.lock | 8 +++--- .../examples/constant_memory_table/Cargo.lock | 8 +++--- .../examples/coop_groups_demo/Cargo.lock | 8 +++--- .../examples/copy_aggregate_borrow/Cargo.lock | 8 +++--- .../examples/copy_nonoverlapping/Cargo.lock | 8 +++--- .../examples/counted_barrier/Cargo.lock | 8 +++--- .../examples/cp_async_small/Cargo.lock | 8 +++--- .../examples/cp_async_zfill/Cargo.lock | 8 +++--- .../cpp_consumes_rust_device/Cargo.lock | 8 +++--- .../examples/cross_crate_embedded/Cargo.lock | 8 +++--- .../examples/cross_crate_kernel/Cargo.lock | 8 +++--- .../cross_crate_merged_symbols/Cargo.lock | 8 +++--- .../examples/cross_crate_recursion/Cargo.lock | 8 +++--- .../examples/cuda_module_contract/Cargo.lock | 8 +++--- .../examples/cuda_module_in_lib/Cargo.lock | 8 +++--- .../examples/cuda_module_nested/Cargo.lock | 8 +++--- .../examples/cutile_inter_kernel/Cargo.lock | 18 ++++++------- .../examples/cutile_inter_kernel/Cargo.toml | 4 +-- .../cutile_inter_kernel/simt/Cargo.lock | 8 +++--- .../examples/cvt_f16x2/Cargo.lock | 8 +++--- .../examples/cvt_packed/Cargo.lock | 8 +++--- .../examples/debug-tests/Cargo.lock | 8 +++--- .../examples/debug/Cargo.lock | 8 +++--- .../examples/debug_pointer_locals/Cargo.lock | 8 +++--- .../examples/device_closures/Cargo.lock | 8 +++--- .../examples/device_ffi_test/Cargo.lock | 8 +++--- .../examples/device_global/Cargo.lock | 8 +++--- .../examples/device_panic_trap/Cargo.lock | 8 +++--- .../disjoint_from_raw_parts/Cargo.lock | 8 +++--- .../examples/disjoint_slice_len/Cargo.lock | 8 +++--- .../examples/dotprod/Cargo.lock | 8 +++--- .../examples/dpx_minmax_chains/Cargo.lock | 8 +++--- .../examples/drop_glue/Cargo.lock | 8 +++--- .../examples/dst_metadata/Cargo.lock | 8 +++--- .../examples/dynamic_smem/Cargo.lock | 8 +++--- .../examples/elect_leader/Cargo.lock | 8 +++--- .../enum_abi_multi_payload/Cargo.lock | 8 +++--- .../examples/enum_array_match/Cargo.lock | 8 +++--- .../enum_constant_provenance/Cargo.lock | 8 +++--- .../examples/enum_payload_addr/Cargo.lock | 8 +++--- .../enum_state_transitions/Cargo.lock | 8 +++--- .../examples/enum_table_lookup/Cargo.lock | 8 +++--- .../examples/error/Cargo.lock | 8 +++--- .../error_enum_bool_payload_addr/Cargo.lock | 8 +++--- .../error_enum_pointer_overlap/Cargo.lock | 8 +++--- .../Cargo.lock | 8 +++--- .../error_generated_intrinsic_abi/Cargo.lock | 8 +++--- .../Cargo.lock | 8 +++--- .../Cargo.lock | 8 +++--- .../Cargo.lock | 8 +++--- .../examples/error_heap_alloc/Cargo.lock | 8 +++--- .../error_host_arch_intrinsic/Cargo.lock | 8 +++--- .../error_host_target_feature/Cargo.lock | 8 +++--- .../error_kernel_shared_param/Cargo.lock | 8 +++--- .../error_kernel_shared_ptr_param/Cargo.lock | 8 +++--- .../error_missing_device_attr/Cargo.lock | 8 +++--- .../Cargo.lock | 8 +++--- .../Cargo.lock | 8 +++--- .../Cargo.lock | 8 +++--- .../examples/ex2_approx_f16/Cargo.lock | 8 +++--- .../examples/exact_div_chunks/Cargo.lock | 8 +++--- .../examples/export_name_policy/Cargo.lock | 8 +++--- .../examples/extern_crate_closure/Cargo.lock | 8 +++--- .../examples/extern_libdevice/Cargo.lock | 8 +++--- .../examples/f16_stress/Cargo.lock | 8 +++--- .../examples/f16x2_arith/Cargo.lock | 8 +++--- .../examples/f32x2_arith/Cargo.lock | 8 +++--- .../examples/fcmp_ne_nan_smoke/Cargo.lock | 8 +++--- .../examples/field_array_assign/Cargo.lock | 8 +++--- .../examples/float_rounding/Cargo.lock | 8 +++--- .../examples/fmaxmin_smoke/Cargo.lock | 8 +++--- .../examples/fn_ptr_naming/Cargo.lock | 8 +++--- .../fp_special_literal_smoke/Cargo.lock | 8 +++--- .../examples/function_item_call/Cargo.lock | 8 +++--- .../examples/future_apis/Cargo.lock | 8 +++--- .../examples/gemm/Cargo.lock | 8 +++--- .../examples/gemm_sol/Cargo.lock | 8 +++--- .../examples/gemm_sol_final/Cargo.lock | 8 +++--- .../examples/gemm_views/Cargo.lock | 8 +++--- .../examples/generated_intrinsics/Cargo.lock | 8 +++--- .../generated_intrinsics_blackwell/Cargo.lock | 8 +++--- .../examples/generated_ldmatrix/Cargo.lock | 8 +++--- .../examples/generic/Cargo.lock | 8 +++--- .../examples/hashmap/Cargo.lock | 8 +++--- .../examples/hashmap_v2/Cargo.lock | 8 +++--- .../examples/hashmap_v3/Cargo.lock | 8 +++--- .../examples/hello_constant/Cargo.lock | 8 +++--- .../examples/helper_fn/Cargo.lock | 8 +++--- .../examples/host_closure/Cargo.lock | 10 +++---- .../host_closure_target_feature/Cargo.lock | 8 +++--- .../examples/iket_trace/Cargo.lock | 8 +++--- .../examples/image_convolution/Cargo.lock | 8 +++--- .../examples/index2d_const/Cargo.lock | 8 +++--- .../examples/index_field_assign/Cargo.lock | 8 +++--- .../examples/inline_intent/Cargo.lock | 8 +++--- .../examples/inline_ptx/Cargo.lock | 8 +++--- .../examples/integer_minmax/Cargo.lock | 8 +++--- .../examples/interior_mutability/Cargo.lock | 8 +++--- .../interop_cubin_identity/Cargo.lock | 8 +++--- .../interop_cubin_identity/device/Cargo.lock | 8 +++--- .../kernel_reference_validity/Cargo.lock | 10 +++---- .../examples/lanemask_scan/Cargo.lock | 8 +++--- .../examples/legacy_atomic_fadd/Cargo.lock | 8 +++--- .../examples/legacy_atomic_rmw_cas/Cargo.lock | 8 +++--- .../legacy_nvvm_pointer_shapes/Cargo.lock | 8 +++--- .../examples/libdevice_math/Cargo.lock | 8 +++--- .../examples/libm_math/Cargo.lock | 8 +++--- .../examples/manual_launch_generic/Cargo.lock | 8 +++--- .../manual_launch_libdevice/Cargo.lock | 8 +++--- .../examples/map_sum/Cargo.lock | 8 +++--- .../examples/math_atan/Cargo.lock | 8 +++--- .../examples/math_hyperbolic/Cargo.lock | 8 +++--- .../examples/math_no_mir_inline/Cargo.lock | 8 +++--- .../examples/math_tan/Cargo.lock | 8 +++--- .../examples/mathdx_ffi_test/Cargo.lock | 8 +++--- .../examples/mcast_barrier_test/Cargo.lock | 8 +++--- .../examples/mem_swap/Cargo.lock | 8 +++--- .../mir_projected_call_destination/Cargo.lock | 8 +++--- .../examples/mma_mxf8f6f4/Cargo.lock | 8 +++--- .../examples/ne_bytes_transmute/Cargo.lock | 8 +++--- .../nested_index_assignment/Cargo.lock | 8 +++--- .../examples/numeric_stress/Cargo.lock | 8 +++--- .../examples/nvls_all_reduce/Cargo.lock | 8 +++--- .../examples/option_ref_transmute/Cargo.lock | 8 +++--- .../examples/option_ref_unwrap_or/Cargo.lock | 8 +++--- .../examples/option_unwrap_trap/Cargo.lock | 8 +++--- .../examples/ord_cmp/Cargo.lock | 8 +++--- .../examples/packed_aggregate_abi/Cargo.lock | 8 +++--- .../examples/packed_atomic_add/Cargo.lock | 8 +++--- .../examples/padded_constants/Cargo.lock | 8 +++--- .../examples/partial_warp_reduce/Cargo.lock | 8 +++--- .../examples/pinned_overlap/Cargo.lock | 8 +++--- .../examples/place_read_fallbacks/Cargo.lock | 8 +++--- .../examples/policy_config/Cargo.lock | 8 +++--- .../examples/primitive_stress/Cargo.lock | 8 +++--- .../examples/printf/Cargo.lock | 8 +++--- .../examples/projected_place_read/Cargo.lock | 8 +++--- .../examples/proof_carrying_views/Cargo.lock | 8 +++--- .../examples/ptr_copy/Cargo.lock | 8 +++--- .../examples/ptr_offset_from/Cargo.lock | 8 +++--- .../ptr_without_provenance/Cargo.lock | 8 +++--- .../examples/reborrow/Cargo.lock | 8 +++--- .../examples/redux_f32/Cargo.lock | 8 +++--- .../examples/redux_minmax/Cargo.lock | 8 +++--- .../examples/redux_sum/Cargo.lock | 8 +++--- .../examples/ref_index_projections/Cargo.lock | 8 +++--- .../examples/ref_operand_mul/Cargo.lock | 8 +++--- .../examples/repr_align_block_args/Cargo.lock | 8 +++--- .../examples/repr_transparent_abi/Cargo.lock | 8 +++--- .../examples/repr_u32_enum_stride/Cargo.lock | 8 +++--- .../examples/row_width_slice/Cargo.lock | 8 +++--- .../examples/rustlantis-smoke/Cargo.lock | 8 +++--- .../scoped_atomic_load_store/Cargo.lock | 8 +++--- .../examples/select_unpredictable/Cargo.lock | 8 +++--- .../examples/set_discriminant/Cargo.lock | 8 +++--- .../set_discriminant_niche/Cargo.lock | 8 +++--- .../examples/shared_debug/Cargo.lock | 8 +++--- .../examples/shared_memory_helper/Cargo.lock | 8 +++--- .../examples/shared_ptr_api/Cargo.lock | 8 +++--- .../examples/shared_ptr_transmute/Cargo.lock | 8 +++--- .../examples/shared_slice_unsize/Cargo.lock | 8 +++--- .../examples/shared_stage_select/Cargo.lock | 8 +++--- .../examples/sharedmem/Cargo.lock | 8 +++--- .../examples/shuffle_64/Cargo.lock | 8 +++--- .../slice_from_raw_parts_cast/Cargo.lock | 8 +++--- .../examples/slice_get_mut/Cargo.lock | 8 +++--- .../slice_index_bounds_check/Cargo.lock | 8 +++--- .../examples/slice_iterators/Cargo.lock | 8 +++--- .../examples/slice_reslice/Cargo.lock | 8 +++--- .../examples/small_type_ffi_test/Cargo.lock | 8 +++--- .../examples/sparse_mma_fp8/Cargo.lock | 8 +++--- .../sparse_mma_ordered_float/Cargo.lock | 8 +++--- .../examples/split_at_mut/Cargo.lock | 8 +++--- .../examples/standalone_device_fn/Cargo.lock | 8 +++--- .../examples/static_slice_addend/Cargo.lock | 8 +++--- .../examples/static_slice_unsize/Cargo.lock | 8 +++--- .../examples/step_by/Cargo.lock | 8 +++--- .../struct_constant_provenance/Cargo.lock | 8 +++--- .../examples/struct_field_layout/Cargo.lock | 8 +++--- .../examples/subslice_projection/Cargo.lock | 8 +++--- .../examples/switchint_128bit/Cargo.lock | 8 +++--- .../examples/swizzle_smem/Cargo.lock | 8 +++--- .../examples/tcgen05/Cargo.lock | 8 +++--- .../examples/tcgen05_matmul/Cargo.lock | 8 +++--- .../examples/thread_runs/Cargo.lock | 8 +++--- .../examples/tiled_gemm/Cargo.lock | 8 +++--- .../examples/tilelib_relu/Cargo.lock | 8 +++--- .../examples/tma_copy/Cargo.lock | 8 +++--- .../examples/tma_multicast/Cargo.lock | 8 +++--- .../toolchain_pairing_smoke/Cargo.lock | 8 +++--- .../transmute_scalar_struct/Cargo.lock | 8 +++--- .../tuple_array_provenance/Cargo.lock | 8 +++--- .../tuple_constant_provenance/Cargo.lock | 8 +++--- .../examples/tuple_field_lookup/Cargo.lock | 8 +++--- .../examples/tuple_return/Cargo.lock | 8 +++--- .../examples/unaligned_memory/Cargo.lock | 8 +++--- .../examples/unchecked_indexing/Cargo.lock | 8 +++--- .../examples/uninit_const/Cargo.lock | 8 +++--- .../examples/union_aggregate/Cargo.lock | 8 +++--- .../examples/unroll_bounds_check/Cargo.lock | 8 +++--- .../examples/unroll_smoke/Cargo.lock | 8 +++--- .../examples/vecadd/Cargo.lock | 8 +++--- .../examples/vectorization/Cargo.lock | 8 +++--- .../examples/volatile_memory/Cargo.lock | 8 +++--- .../examples/warp_reduce/Cargo.lock | 8 +++--- .../examples/warp_sums/Cargo.lock | 8 +++--- .../examples/wgmma/Cargo.lock | 8 +++--- .../examples/wgmma_mma_bf16/Cargo.lock | 8 +++--- cuda-repr/Cargo.toml | 2 +- cutile-rs/CHANGELOG.md | 2 ++ cutile-rs/Cargo.lock | 26 +++++++++---------- cutile-rs/Cargo.toml | 16 ++++++------ .../launch_overhead_rust/Cargo.lock | 2 +- cutile-rs/cutile/Cargo.toml | 3 ++- ...raph_scope_rejects_allocating_input.stderr | 2 +- cutile-rs/scripts/run_cpu_tests.sh | 4 +++ 266 files changed, 1046 insertions(+), 1032 deletions(-) diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml index 732ff8b667..38ee79ac16 100644 --- a/.github/workflows/book.yml +++ b/.github/workflows/book.yml @@ -15,7 +15,8 @@ on: # only ever built after merge, so a PR that broke it could not be caught by # review or by CI. pull_request: - branches: [main] + # Include PRs stacked on copy-pr-bot mirrors of their prerequisites. + branches: [main, "pull-request/[0-9]+"] paths: - 'cuda-oxide/cuda-oxide-book/**' - 'cutile-rs/cutile-book/**' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a8259bc2a..59ac59b714 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,8 @@ on: - 'Cargo.lock' - '.github/workflows/**' pull_request: - branches: [main] + # Include PRs stacked on copy-pr-bot mirrors of their prerequisites. + branches: [main, "pull-request/[0-9]+"] paths: - 'cuda-oxide/**' - 'cuda-bindings/**' diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 60aaba1f3d..47add7852c 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -15,7 +15,8 @@ on: - '**/*.sh' - '**/*.py' pull_request: - branches: [main] + # Include PRs stacked on copy-pr-bot mirrors of their prerequisites. + branches: [main, "pull-request/[0-9]+"] paths: - '**/*.rs' - '**/Cargo.toml' diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index b98efcdfcf..df395910b3 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -16,7 +16,8 @@ on: - 'Cargo.lock' - '.github/workflows/**' pull_request: - branches: [main] + # Include PRs stacked on copy-pr-bot mirrors of their prerequisites. + branches: [main, "pull-request/[0-9]+"] paths: - 'cuda-oxide/**' - 'cuda-bindings/**' diff --git a/.github/workflows/examples-compile.yml b/.github/workflows/examples-compile.yml index fe44d4c575..25fd830f35 100644 --- a/.github/workflows/examples-compile.yml +++ b/.github/workflows/examples-compile.yml @@ -16,7 +16,8 @@ on: - 'Cargo.lock' - '.github/workflows/**' pull_request: - branches: [main] + # Include PRs stacked on copy-pr-bot mirrors of their prerequisites. + branches: [main, "pull-request/[0-9]+"] paths: - 'cuda-oxide/**' - 'cuda-bindings/**' diff --git a/.github/workflows/naming-guard.yml b/.github/workflows/naming-guard.yml index 00eb30f37e..a19e6effcf 100644 --- a/.github/workflows/naming-guard.yml +++ b/.github/workflows/naming-guard.yml @@ -16,7 +16,8 @@ on: - 'cuda-oxide/scripts/check-reserved-prefixes.sh' - '.github/workflows/naming-guard.yml' pull_request: - branches: [main] + # Include PRs stacked on copy-pr-bot mirrors of their prerequisites. + branches: [main, "pull-request/[0-9]+"] paths: - 'cuda-oxide/crates/**' - 'cuda-oxide/scripts/check-reserved-prefixes.sh' diff --git a/.github/workflows/status-guard.yml b/.github/workflows/status-guard.yml index 1bb635e1df..cb409116a3 100644 --- a/.github/workflows/status-guard.yml +++ b/.github/workflows/status-guard.yml @@ -5,7 +5,8 @@ on: push: branches: [main] pull_request: - branches: [main] + # Include PRs stacked on copy-pr-bot mirrors of their prerequisites. + branches: [main, "pull-request/[0-9]+"] # Each commit on main gets its own group, so it starts at once. Any other ref # still shares one group and cancels the older run. diff --git a/Cargo.lock b/Cargo.lock index 636f401c57..cd529dff7a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -125,7 +125,7 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "cuda-async" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-bindings", @@ -141,7 +141,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -153,7 +153,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -167,7 +167,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -176,7 +176,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "dashmap" diff --git a/cuda-async/Cargo.toml b/cuda-async/Cargo.toml index cfb9a48fb4..24fd68a5d9 100644 --- a/cuda-async/Cargo.toml +++ b/cuda-async/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cuda-async" -version = "0.4.0" +version = "0.5.0" edition = "2021" rust-version = "1.89" license = "Apache-2.0" @@ -11,9 +11,9 @@ description = "Safe Async CUDA support via Async Rust." [dependencies] # Sibling paths, not the root workspace entries; see cuda-core/Cargo.toml. -cuda-core = { version = "=0.4.0", path = "../cuda-core" } +cuda-core = { version = "=0.5.0", path = "../cuda-core" } rustc-hash = "2.0" -cuda-bindings = { version = "=0.4.0", path = "../cuda-bindings" } +cuda-bindings = { version = "=0.5.0", path = "../cuda-bindings" } half = { version = "2" } futures = "0.3" anyhow = "1" diff --git a/cuda-bindings/Cargo.toml b/cuda-bindings/Cargo.toml index cd7d5f952a..eee40b94ed 100644 --- a/cuda-bindings/Cargo.toml +++ b/cuda-bindings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" authors = ["Melih Elibol"] edition = "2021" rust-version = "1.89" diff --git a/cuda-core-derive/Cargo.toml b/cuda-core-derive/Cargo.toml index 3ca5a573c0..797531a8b5 100644 --- a/cuda-core-derive/Cargo.toml +++ b/cuda-core-derive/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cuda-core-derive" description = "Derive macro for cuda-core's DeviceCopy trait." -version = "0.4.0" +version = "0.5.0" edition = "2021" rust-version = "1.89" license = "Apache-2.0" diff --git a/cuda-core/Cargo.toml b/cuda-core/Cargo.toml index b7573874eb..c19d8bc9ee 100644 --- a/cuda-core/Cargo.toml +++ b/cuda-core/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cuda-core" description = "Idiomatic CUDA API." -version = "0.4.0" +version = "0.5.0" edition = "2021" rust-version = "1.89" license = "Apache-2.0" @@ -13,9 +13,9 @@ readme = "README.md" # Sibling paths, not the root workspace entries: those name the published # release that cuda-oxide consumes, and inheriting them here would make this # copy depend on a crates.io cuda-bindings instead of the one beside it. -cuda-bindings = { version = "=0.4.0", path = "../cuda-bindings" } -cuda-core-derive = { version = "=0.4.0", path = "../cuda-core-derive" } -cuda-repr = { version = "=0.4.0", path = "../cuda-repr" } +cuda-bindings = { version = "=0.5.0", path = "../cuda-bindings" } +cuda-core-derive = { version = "=0.5.0", path = "../cuda-core-derive" } +cuda-repr = { version = "=0.5.0", path = "../cuda-repr" } anyhow = "1" # `AnyBitPattern` bounds safe reinterpreting casts on `DeviceBuffer`. # Re-exported at the crate root for downstream element types. diff --git a/cuda-oxide/Cargo.lock b/cuda-oxide/Cargo.lock index 5381d84a4e..07c0e0bde2 100644 --- a/cuda-oxide/Cargo.lock +++ b/cuda-oxide/Cargo.lock @@ -387,7 +387,7 @@ dependencies = [ [[package]] name = "cuda-async" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-bindings", @@ -402,7 +402,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -414,7 +414,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -427,7 +427,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -517,7 +517,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/cuda-device/Cargo.toml b/cuda-oxide/crates/cuda-device/Cargo.toml index cfdeea05ad..fcbb2432b8 100644 --- a/cuda-oxide/crates/cuda-device/Cargo.toml +++ b/cuda-oxide/crates/cuda-device/Cargo.toml @@ -17,7 +17,7 @@ readme = "README.md" cuda-macros = { workspace = true } # Shared no_std marker for owned-buffer representation changes. Keeping it # separate from cuda-core leaves kernel-only builds free of host dependencies. -cuda-repr = { version = "=0.4.0", path = "../../../cuda-repr" } +cuda-repr = { version = "=0.5.0", path = "../../../cuda-repr" } # Vector types implement Pod for safe cast_chunks targets. bytemuck = { workspace = true } diff --git a/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock b/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock index aeb18900c6..1054e0ea68 100644 --- a/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock +++ b/cuda-oxide/crates/cuda-macros/tests/device-only/Cargo.lock @@ -30,7 +30,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "device-only-kernels" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock index 74bf2ea629..11aa528a90 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock index 84edde3c8f..dec68951fe 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock index fd9ab8d0ee..dfc512b9d2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock index 49b71a5fd7..c1d79206f6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock index ca1aff066e..da25dad53e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock index a72500fa9a..d5820f5235 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock index a0e2335648..fa32af0e2c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock index dc1619243b..36f4fd0076 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock index e7fec1ef6b..be7ad286e4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock index 16793594e9..eb027b468b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock index 8f4ce7d4db..613f194c6b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/Cargo.lock @@ -165,7 +165,7 @@ dependencies = [ [[package]] name = "cuda-async" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-bindings", @@ -180,7 +180,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -192,7 +192,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -205,7 +205,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -250,7 +250,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock index 14f2f77d92..9a383ef3ff 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/Cargo.lock @@ -165,7 +165,7 @@ dependencies = [ [[package]] name = "cuda-async" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-bindings", @@ -180,7 +180,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -192,7 +192,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -205,7 +205,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -250,7 +250,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock index 5563aac1b7..e542cfe1e7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock index 1e97d4c45d..e39ac63be8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock index fb80075f52..020a9a05cc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock index c4084c38a2..30151e7d61 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock index c0d10b5f8e..136cd44e09 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock index a592fcb5e7..f1cd37aa52 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock index ae0aa9682e..42f77bb67a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock index 63d31f3f86..bc9b17722f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock index 8e266a3082..736d95e213 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock index d4c2916828..924335f3a0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock index 9dae2ed834..754be36c2d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock index cedda42d5e..5a218232b6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -170,7 +170,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -183,7 +183,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -227,7 +227,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock index d89ef7bcbe..6cc505d8ba 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -170,7 +170,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -183,7 +183,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -227,7 +227,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock index 04c5215c8d..efd9199a3d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -170,7 +170,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -183,7 +183,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -227,7 +227,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock index 64bab1b97d..ff0c5e53e3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock index d792f8768c..7f0bda1a59 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock index da5a0fd11b..fb25831939 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock index 70e1259b6e..753169beb0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -170,7 +170,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -183,7 +183,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -227,7 +227,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock index 3f83846093..4ee917489f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock index c12cf02a15..bfb6d8c49b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock index 8b48056d0c..a11b34f96d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock index 9f5cb8478f..19069c00ad 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock index 84085164a6..42db0f1cbd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock index 62a21ff9dc..04813aa9a3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock index b35648c811..24ff61ac90 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock index 721e0cec2e..57ad1d2654 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock index 64bf859555..578f67e277 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock index d12e55f749..7dcc4b15fa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock index 013dcbea6e..974fb9e718 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock index 6ab933d8a8..f1cc845aad 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock index 06c599b866..1afa95aed4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/Cargo.lock @@ -157,7 +157,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -182,7 +182,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -226,7 +226,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock index 8df131b539..54e0061077 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cpp_consumes_rust_device/Cargo.lock @@ -156,7 +156,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -168,7 +168,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -181,7 +181,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -225,7 +225,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock index 659e32c3d0..60389dcceb 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -170,7 +170,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -183,7 +183,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -227,7 +227,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock index b5957dbab0..5ed8c9f50f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/Cargo.lock @@ -159,7 +159,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -171,7 +171,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -184,7 +184,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -228,7 +228,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock index f3668d7b9a..855d4c05b6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_merged_symbols/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -170,7 +170,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -183,7 +183,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -227,7 +227,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock index 4d50eada5f..2bc64de75d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -170,7 +170,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -183,7 +183,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -227,7 +227,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock index 3a117ec202..ea85e25304 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_contract/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock index 832f093860..e998f9d4e9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock index 7917b80a1e..10be1e6bf8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock index 58419fa75e..e5a5c45743 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.lock @@ -189,7 +189,7 @@ dependencies = [ [[package]] name = "cuda-async" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-bindings", @@ -204,7 +204,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -216,7 +216,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -229,7 +229,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -238,11 +238,11 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cutile" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-async", @@ -264,7 +264,7 @@ dependencies = [ [[package]] name = "cutile-compiler" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-async", @@ -284,7 +284,7 @@ dependencies = [ [[package]] name = "cutile-ir" -version = "0.4.0" +version = "0.5.0" dependencies = [ "half", "indexmap", @@ -294,7 +294,7 @@ dependencies = [ [[package]] name = "cutile-macro" -version = "0.4.0" +version = "0.5.0" dependencies = [ "convert_case", "cutile-compiler", diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.toml b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.toml index 7632b78ccf..d6804cd667 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.toml +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/Cargo.toml @@ -16,8 +16,8 @@ ptx-dir = "simt" resolver = "2" [dependencies] -cutile = { path = "../../../../../cutile-rs/cutile", version = "0.4.0" } -cutile-compiler = { path = "../../../../../cutile-rs/cutile-compiler", version = "0.4.0" } +cutile = { path = "../../../../../cutile-rs/cutile", version = "0.5.0" } +cutile-compiler = { path = "../../../../../cutile-rs/cutile-compiler", version = "0.5.0" } cuda-async = { path = "../../../../../cuda-async" } cuda-core = { path = "../../../../../cuda-core" } tokio = { version = "1", features = ["full"] } diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock index 8c80a6e505..6f14274518 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cutile_inter_kernel/simt/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock index 26edc30110..ee3dc753fd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock index 34ce4988af..db1a449b43 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock index 0b5923a16f..618f28f08c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock index 43b8ba57ee..2d0670d6cf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock index 6b9642c616..7c0bac033a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock index 39296f8b9d..75832d3e73 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock index ee0aff3f60..ce8d1c6e3d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock index 67807add8b..e0877a3cc8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock index caa268e65a..eb41211982 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock index bbab68cfd5..4d2d73521f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock index d5f8fa0f4f..10edb30fb6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock index 958edc7410..f5e6935fde 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock index f765292ee5..f7fda21f60 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock index d9a5650ae8..cb4f54d8e2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock index 19c6b61b24..05c5486bbc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock index ead52dd0d4..631cb7c013 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock index e3e37416f4..e6e25e4c9e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock index 56b41ea0a8..7820ea49cd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock index 81b9081683..06dd097e1d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock index 2b634e0ab6..a36ae96ab6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock index d463b262e9..9e9ac7bcb0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock index d6a461d337..ba3ace867d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock index 8e0c014674..f30418623e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock index 77f98d31f8..7faae7ef3a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock index d074fcfea5..d231e0c39e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_bool_payload_addr/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock index e7c327edfc..6e69cade58 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_pointer_overlap/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock index 38e52cdd48..62ff81af0a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_enum_shared_pointer_layout/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock index 175a193e43..49093bb41e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_abi/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -221,7 +221,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock index 2e9f9938b7..fedbe9fc9f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_callable/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -221,7 +221,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock index 8072c59573..04799b2f99 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_fn_pointer/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -221,7 +221,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock index 8179169135..68dc37824f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_generated_intrinsic_unknown_id/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -221,7 +221,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock index cfc096686a..b17795e7f5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_heap_alloc/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock index 268ec31989..e8e294b7f6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_arch_intrinsic/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock index e59ff173ff..317df9f246 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_host_target_feature/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock index ed19958405..cce09ebc03 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_param/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock index 574bca94bf..c7beb79e30 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_kernel_shared_ptr_param/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock index b40613ba54..6c1c8300a0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_missing_device_attr/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock index 3b9be43ecd..6c8eab1cd5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_set_discriminant_uninhabited/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock index fbc1ec03b3..f627a6529a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_addr/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock index d1ec30fc3d..4d998309ad 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/error_union_shared_pointer_layout/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock index 72158c05c2..bd527d3e5c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock index a5f5470479..35a37d5364 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock index 89bc1cafaa..55897dd59b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock index 2bd114fa17..ff95f4d944 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock index df52811d1a..84829ec532 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock index e5163fa61f..ba899feac5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock index bfcd4c54d1..6f3ab107d1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock index eb5b8c18e1..65d966c928 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock index 73908d301a..7a49fe2697 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock index 0394d682c8..cf3f3a388d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock index 340fb5d487..751413c96d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock index 6bd36d8d10..535781a3bd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock index f0282a48bd..65944e2b8b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock index 936db69293..f5fde93d13 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock index 144a20d318..ef1ff225df 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock index dc2c58e40b..8b04b69ff5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock index 90296f8f70..9ade3f4c60 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock index ec88378f91..64c61e2885 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock index 512a321d08..e3dfda378e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock index 89c2a35b58..4848851b60 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_views/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock index 2fbd2fc964..5daa2b305f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -221,7 +221,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock index 5359d8316d..907627700b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -221,7 +221,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock index 77758496a8..e539bab221 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -221,7 +221,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock index 7eb09de9c7..c0089b8ec8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock index 707d63007c..1412bea8db 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock index b18eead33b..32a6277939 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/Cargo.lock @@ -179,7 +179,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -191,7 +191,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -204,7 +204,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -248,7 +248,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock index 38c6a4ed77..0049754c37 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/Cargo.lock @@ -179,7 +179,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -191,7 +191,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -204,7 +204,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -248,7 +248,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock index 1a4a848c62..b36f787410 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock index d0646b0dd7..97f020564d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock index 87c2e9743e..5d8b151d2d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/Cargo.lock @@ -154,7 +154,7 @@ dependencies = [ [[package]] name = "cuda-async" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-bindings", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -181,7 +181,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -194,7 +194,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -239,7 +239,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock index a8ee128b4d..5c6953c2ae 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock index 99c22cab6e..31841ddce6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock index 681ccaefc3..d02d6922c0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/image_convolution/Cargo.lock @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -172,7 +172,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -185,7 +185,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -229,7 +229,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock index b6476c2d0c..9ea59f6c0f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock index 0d93571451..f0bda7f6cb 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock index 24874ba05a..6a5c6c43bd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock index 7942309443..94c06adf7a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock index 93bd2720b0..fbe50fdacf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock index 0dcaeb7c0c..7c1d5b0afc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock index 321ec16b02..3d2813e85c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/Cargo.lock @@ -137,7 +137,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -149,7 +149,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -162,7 +162,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -171,7 +171,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "digest" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock index 15d374f270..af1d0b0b0f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interop_cubin_identity/device/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock index 843a74f7fc..1ed1a9c4fa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/kernel_reference_validity/Cargo.lock @@ -154,7 +154,7 @@ dependencies = [ [[package]] name = "cuda-async" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-bindings", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -181,7 +181,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -194,7 +194,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -239,7 +239,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock index 03de2bf3a6..5f7611a0d1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock index 6fbb2ce2c3..5873b89cbb 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock index fe835688cf..0903b38aec 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock index baf24e7e74..1613d3094f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock index fe7021e4bd..9fed85272f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock index c1efbb457f..5b563b1f70 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock index 3a61bf0c22..a4fceb2fbf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock index 21fe07e588..1501d7c417 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock index f5e23986c5..da98e083c8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock index e2ca3b463a..d8e955b903 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock index b5959a0a41..5ae9d659d2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock index 5da1e7c5d9..928cda20b4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock index 50176f2024..1074c9c856 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock index f2b6b8f68d..4c48a156ad 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/Cargo.lock @@ -168,7 +168,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen 0.69.5", "libloading", @@ -180,7 +180,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -193,7 +193,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -237,7 +237,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock index c9603a8118..1667c1d80a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock index 55477827c6..062912b2c9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock index 4244d5d569..1e1a663228 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock index 9af60d6153..c653a0e91b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock index 9a22d77690..744b21aeb4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock index 860c152b4d..92d2e16196 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock index f62f6d3148..1d9c6d11c8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock index 47c8ae6b9f..7aa3600aa3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock index c94b89a822..7d3ff0f266 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock index 59fa79d297..251df922c6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock index 4eb66efe0a..3df579363d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock index c3a3208bf1..a6824d012a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock index c8708d3e0a..a31b76f367 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock index 62aa029e52..4fd8c89a09 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock index c6b6733809..c02bbf71aa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock index e29523a655..5db56d7de2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/partial_warp_reduce/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock index 0cf62b3da4..14f447df5f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock index c7205557db..b5f6bedc2c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock index cdd0713775..7c03aa4c0a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/policy_config/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock index 2a5820011e..25d58dd57e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock index 0e3e7456c8..bbd90a53b7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock index dc72269a3b..ed86ebde66 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock index 341cd6a723..2fc6f6f1de 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/proof_carrying_views/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock index c28a52220b..b578abb71e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock index 37ead087a5..12f7266612 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock index 081292e672..8a5d83c314 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock index ad5a8593f3..d2f261ecee 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock index 03845eb7bd..9c55768796 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock index d9fb1c091b..3d714e8538 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock index ba8c22ed90..3a80e4cc85 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock index 14da077f87..79b3d7d9f3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock index 51eb247c2e..6a7caa3801 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock index a1114bb969..4bd1bedf72 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock index becbee7ca0..3fd3685ef5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock index e8e3453285..5f09571d83 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock index 24a17e8039..da46bb0b49 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock index 8847d879a9..7a0718f1dc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock index bf291fbc56..deed088648 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock index fd04b6c615..c0d4ec65c3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock index bd5ab02384..fdcd796e89 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock index b8ed7a4cd3..ce0aa2f9d4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock index 9524d13914..38b61aeb46 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock index abb92966f2..8589ef2f72 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock index 34a8f73787..33fc5b49ef 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock index b3a41c7052..3d404f4040 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock index 7bac38bc3c..fa98b52fc8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock index b1a864b375..bf44b68ea3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock index df08e17397..e197b12c3a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock index 35f68598cd..d4486984c7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock index 17d6abf8b8..18b8c4a73f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock index 53b2087f2d..83782b09d1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock index 01349d9956..ad3ea3222b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock index ecc1613324..1cb745ce5c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock index 7720bb52a2..1389f4b5ce 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock index 8d6c5bb87f..933c91ec6b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock index e89d83786c..29ca0312b7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock index 3417e07d46..473daf61e7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock index 311b1c4c58..2bd79874e2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock index 6e65311446..d5a109b7e2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/standalone_device_fn/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock index 88b0b831f1..f1eb1c9cb8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock index a0b0f629d2..8ac3d638d1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock index 912b1be470..ec3ad6c453 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock index 4da354d0af..f77b0ffdde 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock index f171849e7a..7ab7374410 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock index 7f247d81ff..11444a5fc1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock index 84d154a33e..7ffd7d3f88 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock index 0bc677aefa..06dd727999 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock index 5d0c0313d6..f7070b0f5f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock index 1841b29d4e..d901f5f063 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock index 0a72390920..171aa871fe 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/thread_runs/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock index 7fc5716195..6b285ab2b4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock index d4940ca705..d9a057a886 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tilelib_relu/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -202,7 +202,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock index 14f16db937..4d4e057127 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock index 80602f7f3b..be25221332 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock index 4ed435c930..26fbeac965 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/toolchain_pairing_smoke/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock index 80d4cf6b07..706621d286 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock index f14a7a759d..b02dde3442 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock index c93c6f4828..c5ac5c7764 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock index cf8398d37a..8f832c6bd4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock index 7467cbbeef..8b440086dd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock index 97820ee3a2..b7fd23c585 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock index 344e2e750d..804739094a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock index 6cc9b00142..776a3b2fdc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock index 94ff883fc6..0b856a775d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock index 221d56063d..c1a5dbca3c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock index 7379970ee2..b15fe62cb4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock index 3f762552ec..2a0f4476df 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock index 23b44609cc..42f26c0d4c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock index 19be4e6946..4c3fdc6311 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock index 3dd8d87e0c..5525f5e82f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock index 68222f25b5..364cdf865e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_sums/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock index 6ba55e9aac..cab085cf59 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock index 53b1a515b1..125fb3f6a1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma_mma_bf16/Cargo.lock @@ -148,7 +148,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen", "libloading", @@ -160,7 +160,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -173,7 +173,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -217,7 +217,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-target-spec" diff --git a/cuda-repr/Cargo.toml b/cuda-repr/Cargo.toml index a03693164b..22b601237d 100644 --- a/cuda-repr/Cargo.toml +++ b/cuda-repr/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" edition = "2021" rust-version = "1.89" license = "Apache-2.0" diff --git a/cutile-rs/CHANGELOG.md b/cutile-rs/CHANGELOG.md index ff35e8575a..6b545607cb 100644 --- a/cutile-rs/CHANGELOG.md +++ b/cutile-rs/CHANGELOG.md @@ -29,6 +29,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ### Changed +- Advance the lockstep Tile and shared host crates to v0.5.0 for the breaking + safety-contract and host-runtime changes. - cuTile Rust now lives in the [NVIDIA/cuda-rust](https://github.com/NVIDIA/cuda-rust) repository under `cutile-rs/`, next to cuda-oxide (SIMT) and the shared host crates (`cuda-bindings`, `cuda-core`, `cuda-core-derive`, `cuda-async`) at the diff --git a/cutile-rs/Cargo.lock b/cutile-rs/Cargo.lock index 605a4e7fba..be6318db94 100644 --- a/cutile-rs/Cargo.lock +++ b/cutile-rs/Cargo.lock @@ -414,7 +414,7 @@ dependencies = [ [[package]] name = "cuda-async" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-bindings", @@ -429,7 +429,7 @@ dependencies = [ [[package]] name = "cuda-bindings" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen 0.69.5", "libloading", @@ -441,7 +441,7 @@ dependencies = [ [[package]] name = "cuda-core" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "bytemuck", @@ -454,7 +454,7 @@ dependencies = [ [[package]] name = "cuda-core-derive" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proc-macro2", "quote", @@ -463,11 +463,11 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cuda-tile-rs" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bindgen 0.71.1", "cmake", @@ -475,7 +475,7 @@ dependencies = [ [[package]] name = "cutile" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-async", @@ -500,7 +500,7 @@ dependencies = [ [[package]] name = "cutile-benchmarks" -version = "0.4.0" +version = "0.5.0" dependencies = [ "criterion", "cuda-async", @@ -513,7 +513,7 @@ dependencies = [ [[package]] name = "cutile-compiler" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "cuda-async", @@ -533,7 +533,7 @@ dependencies = [ [[package]] name = "cutile-examples" -version = "0.4.0" +version = "0.5.0" dependencies = [ "candle-core", "candle-nn", @@ -548,7 +548,7 @@ dependencies = [ [[package]] name = "cutile-ir" -version = "0.4.0" +version = "0.5.0" dependencies = [ "half", "indexmap", @@ -558,7 +558,7 @@ dependencies = [ [[package]] name = "cutile-kernels" -version = "0.4.0" +version = "0.5.0" dependencies = [ "cutile", "cutile-compiler", @@ -566,7 +566,7 @@ dependencies = [ [[package]] name = "cutile-macro" -version = "0.4.0" +version = "0.5.0" dependencies = [ "convert_case", "cutile-compiler", diff --git a/cutile-rs/Cargo.toml b/cutile-rs/Cargo.toml index 3b1afdcd57..674fb79e89 100644 --- a/cutile-rs/Cargo.toml +++ b/cutile-rs/Cargo.toml @@ -40,7 +40,7 @@ default-members = [ ] [workspace.package] -version = "0.4.0" +version = "0.5.0" edition = "2021" rust-version = "1.89" license = "Apache-2.0" @@ -78,19 +78,19 @@ sha2 = "0.10" once_cell = "1.19" # ── Intra-workspace ────────────────────────────────────────────────────────── -cuda-bindings = { path = "../cuda-bindings", version = "=0.4.0" } -cuda-core = { path = "../cuda-core", version = "=0.4.0" } -cuda-async = { path = "../cuda-async", version = "=0.4.0" } +cuda-bindings = { path = "../cuda-bindings", version = "=0.5.0" } +cuda-core = { path = "../cuda-core", version = "=0.5.0" } +cuda-async = { path = "../cuda-async", version = "=0.5.0" } # Lockstep crates: the macro's generated code targets exact runtime items # (and the compiler's registry/ast contract), so a floating requirement lets # cargo pair an old runtime with a new macro and break the OLD published # crate for downstreams (candle CI, 2026-09-04: cutile 0.3.0 resolved # cutile-macro 0.3.1 and failed on 0.3.1-only symbols). Exact-pin, like # serde pins serde_derive. -cutile-compiler = { path = "cutile-compiler", version = "=0.4.0" } -cutile-macro = { path = "cutile-macro", version = "=0.4.0" } -cutile = { path = "cutile", version = "=0.4.0" } -cutile-ir = { path = "cutile-ir", version = "=0.4.0" } +cutile-compiler = { path = "cutile-compiler", version = "=0.5.0" } +cutile-macro = { path = "cutile-macro", version = "=0.5.0" } +cutile = { path = "cutile", version = "=0.5.0" } +cutile-ir = { path = "cutile-ir", version = "=0.5.0" } # Lint policy shared by every workspace crate (`[lints] workspace = true`). [workspace.lints.rust] diff --git a/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/Cargo.lock b/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/Cargo.lock index 80542e4da3..0b79829edf 100644 --- a/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/Cargo.lock +++ b/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/Cargo.lock @@ -190,7 +190,7 @@ dependencies = [ [[package]] name = "cuda-repr" -version = "0.4.0" +version = "0.5.0" [[package]] name = "cutile" diff --git a/cutile-rs/cutile/Cargo.toml b/cutile-rs/cutile/Cargo.toml index 2bcf776c43..f5021fb054 100644 --- a/cutile-rs/cutile/Cargo.toml +++ b/cutile-rs/cutile/Cargo.toml @@ -24,7 +24,8 @@ num-traits = { workspace = true } half = { workspace = true } anyhow = { workspace = true } cuda-core = { workspace = true } -cuda-async = { workspace = true } +# Explicit path lets trybuild normalize diagnostics from this external workspace. +cuda-async = { path = "../../cuda-async", version = "=0.5.0" } cutile-compiler = { workspace = true } cutile-macro = { workspace = true } cutile-ir = { workspace = true } diff --git a/cutile-rs/cutile/tests/ui/graph_scope_rejects_allocating_input.stderr b/cutile-rs/cutile/tests/ui/graph_scope_rejects_allocating_input.stderr index 2a9ca54741..50cf7de04c 100644 --- a/cutile-rs/cutile/tests/ui/graph_scope_rejects_allocating_input.stderr +++ b/cutile-rs/cutile/tests/ui/graph_scope_rejects_allocating_input.stderr @@ -20,7 +20,7 @@ error[E0277]: the trait bound `impl cutile::prelude::DeviceOp { // SAFETY: every bit pattern is a valid `A`, so the bytes of any `T` // are valid `A` values; `relabel` checks the layout. - unsafe { self.relabel() } + let mut buffer = unsafe { self.relabel() }; + buffer.shared_access_writes = false; + buffer } /// View this buffer through a `#[repr(transparent)]` wrapper of `T`. @@ -372,16 +432,13 @@ impl DeviceBuffer { std::mem::align_of::(), "element casts require the same element alignment" ); - let (ptr, len, ctx, dealloc_stream) = self.into_all_raw_parts(); - // SAFETY: `ptr` came from a valid `DeviceBuffer` allocation of `len` - // elements; `A` has identical size and alignment, so the same allocation - // is a valid `DeviceBuffer` of the same length and the same byte - // extent, and the caller guarantees the values are valid `A`s. - // Ownership transfers; the original buffer's `Drop` is suppressed by - // `into_all_raw_parts`, and the allocation metadata is preserved for - // the new element type. - unsafe { - DeviceBuffer::::from_raw_parts_with_dealloc_stream(ptr, len, ctx, dealloc_stream) + DeviceBuffer { + storage: self.storage, + shared_access_writes: true, + ptr: self.ptr, + len: self.len, + num_bytes: self.num_bytes, + _marker: PhantomData, } } @@ -440,14 +497,13 @@ impl DeviceBuffer { ) else { return Err(self); }; - let (ptr, _len, ctx, dealloc_stream) = self.into_all_raw_parts(); - // SAFETY: `ptr` came from a valid allocation of `bytes` bytes, checked - // above to be exactly `new_len` elements of `A` and to be aligned for - // `A`. The allocation and its ownership are unchanged; only the element - // type and the count describing the same bytes change. `Drop` on the - // original is suppressed by `into_all_raw_parts`. - Ok(unsafe { - DeviceBuffer::::from_raw_parts_with_dealloc_stream(ptr, new_len, ctx, dealloc_stream) + Ok(DeviceBuffer { + storage: self.storage, + shared_access_writes: false, + ptr: self.ptr, + len: new_len, + num_bytes: self.num_bytes, + _marker: PhantomData, }) } @@ -469,6 +525,20 @@ impl DeviceBuffer { } impl DeviceBuffer { + /// Constructs a plain-value typed view of shared byte storage. + /// + /// # Safety + /// The initialization, validity, and aliasing requirements of + /// `from_storage` apply. DeviceCopy additionally excludes interior mutability. + pub unsafe fn from_storage_copy( + storage: crate::RawDeviceBuffer, + len: usize, + ) -> Result { + let mut buffer = unsafe { Self::from_storage(storage, len)? }; + buffer.shared_access_writes = false; + Ok(buffer) + } + /// Allocates device memory, copies `data` from the host on `stream`, and /// synchronizes `stream` before returning. /// @@ -487,7 +557,7 @@ impl DeviceBuffer { /// stream synchronization run. If either step fails, the early return /// drops the buffer and its `Drop` impl frees the allocation, so no /// device memory is leaked. - pub fn from_host(stream: &CudaStream, data: &[T]) -> Result { + pub fn from_host(stream: &Stream, data: &[T]) -> Result { let ctx = stream.context().clone(); let len = data.len(); let num_bytes = allocation_size::(len)?; @@ -500,22 +570,19 @@ impl DeviceBuffer { return Ok(unsafe { Self::from_raw_parts(0, len, ctx) }); } - let ptr = unsafe { crate::simt::memory::malloc_sync(num_bytes)? }; + ctx.bind_to_thread()?; + let ptr = unsafe { crate::memory::malloc_sync(num_bytes)? }; // SAFETY: `ptr` was just allocated with `num_bytes` bytes in the // stream's context; ownership transfers to `buf` here so any early // return below frees it through the buffer's own `Drop`. - let buf = unsafe { Self::from_raw_parts(ptr, len, ctx) }; + let mut buf = unsafe { Self::from_raw_parts(ptr, len, ctx) }; let enqueue_result = unsafe { - crate::simt::memory::memcpy_htod_async( - buf.ptr, - data.as_ptr(), - num_bytes, - stream.cu_stream(), - ) + crate::memory::memcpy_htod_async(buf.ptr, data.as_ptr(), num_bytes, stream.cu_stream()) }; let sync_result = stream.synchronize(); enqueue_result?; sync_result?; + buf.shared_access_writes = false; Ok(buf) } @@ -528,9 +595,9 @@ impl DeviceBuffer { /// still be reading from `data` after the borrow is released. The caller /// must ensure `data` is not dropped, freed, mutated, or aliased until the /// enqueued copy has completed, typically after the next - /// [`CudaStream::synchronize`] call or a stream-ordered event wait. + /// [`Stream::synchronize`] call or a stream-ordered event wait. pub unsafe fn from_host_async_unchecked( - stream: &CudaStream, + stream: &Stream, data: &[T], ) -> Result { let ctx = stream.context().clone(); @@ -545,19 +612,16 @@ impl DeviceBuffer { return Ok(unsafe { Self::from_raw_parts(0, len, ctx) }); } - let ptr = unsafe { crate::simt::memory::malloc_sync(num_bytes)? }; + ctx.bind_to_thread()?; + let ptr = unsafe { crate::memory::malloc_sync(num_bytes)? }; // SAFETY: `ptr` was just allocated with `num_bytes` bytes in the // stream's context; ownership transfers to `buf` here so any early // return below frees it through the buffer's own `Drop`. - let buf = unsafe { Self::from_raw_parts(ptr, len, ctx) }; - unsafe { - crate::simt::memory::memcpy_htod_async( - buf.ptr, - data.as_ptr(), - num_bytes, - stream.cu_stream(), - )?; - } + let mut buf = unsafe { Self::from_raw_parts(ptr, len, ctx) }; + buf.enqueue_access(stream, true, || unsafe { + crate::memory::memcpy_htod_async(buf.ptr, data.as_ptr(), num_bytes, stream.cu_stream()) + })?; + buf.shared_access_writes = false; Ok(buf) } @@ -570,8 +634,8 @@ impl DeviceBuffer { /// /// `PinnedHostBuffer` currently uses `cuMemAllocHost` without the /// `PORTABLE` flag, so the allocation is only pinned in the context that - /// created it. In debug builds this asserts that `data` and `stream` - /// share the same [`CudaContext`]. + /// created it. This checks that `data` and `stream` share the same + /// CUDA context. /// /// The device-to-host counterparts are [`Self::copy_to_pinned_host`] /// (blocking) and [`Self::copy_to_pinned_host_async`] (non-blocking). To @@ -585,18 +649,19 @@ impl DeviceBuffer { /// after this function returns. The caller is responsible for ensuring /// `data` is not dropped, freed, mutated, or aliased until the enqueued /// copy has completed, typically after the next - /// [`CudaStream::synchronize`] call or a stream-ordered event wait. + /// [`Stream::synchronize`] call or a stream-ordered event wait. /// Dropping `data` before that synchronization point calls /// `cuMemFreeHost` while the in-flight transfer is still reading the /// buffer, which is undefined behavior. pub unsafe fn from_pinned_host( - stream: &CudaStream, + stream: &Stream, data: &PinnedHostBuffer, ) -> Result { - debug_assert!( - Arc::ptr_eq(data.context(), stream.context()), - "pinned host buffer and stream must belong to the same CUDA context" - ); + if data.context().as_ref() != stream.context().as_ref() { + return Err(DriverError( + cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_CONTEXT, + )); + } // SAFETY: this method's safety contract requires the caller to keep // the pinned source valid until the enqueued copy completes. unsafe { Self::from_host_async_unchecked(stream, data.as_slice()) } @@ -619,7 +684,7 @@ impl DeviceBuffer { /// `memset_d8_async` enqueue and stream synchronization run. If either /// fails, the early return drops the buffer and its `Drop` impl frees the /// allocation, so no device memory is leaked. - pub fn zeroed(stream: &CudaStream, len: usize) -> Result { + pub fn zeroed(stream: &Stream, len: usize) -> Result { let ctx = stream.context().clone(); let num_bytes = allocation_size::(len)?; @@ -631,15 +696,17 @@ impl DeviceBuffer { return Ok(unsafe { Self::from_raw_parts(0, len, ctx) }); } - let ptr = unsafe { crate::simt::memory::malloc_sync(num_bytes)? }; + ctx.bind_to_thread()?; + let ptr = unsafe { crate::memory::malloc_sync(num_bytes)? }; // SAFETY: `ptr` was just allocated with `num_bytes` bytes in the // stream's context; ownership transfers to `buf` here so any early // return below frees it through the buffer's own `Drop`. - let buf = unsafe { Self::from_raw_parts(ptr, len, ctx) }; + let mut buf = unsafe { Self::from_raw_parts(ptr, len, ctx) }; unsafe { - crate::simt::memory::memset_d8_async(buf.ptr, 0, num_bytes, stream.cu_stream())?; + crate::memory::memset_d8_async(buf.ptr, 0, num_bytes, stream.cu_stream())?; } stream.synchronize()?; + buf.shared_access_writes = false; Ok(buf) } @@ -647,18 +714,35 @@ impl DeviceBuffer { /// /// Synchronizes on `stream` before returning so the host vector is safe /// to read immediately. - pub fn to_host_vec(&self, stream: &CudaStream) -> Result, DriverError> { - let mut host = Vec::with_capacity(self.len); - unsafe { - crate::simt::memory::memcpy_dtoh_async( + pub fn to_host_vec(&self, stream: &Stream) -> Result, DriverError> { + let mut host = Vec::::with_capacity(self.len); + if self.num_bytes() == 0 { + // SAFETY: empty buffers or zero-sized DeviceCopy values need no bytes. + unsafe { + host.set_len(self.len); + } + return Ok(host); + } + let lease = self.storage.acquire(stream, false, false)?; + self.storage.context().bind_to_thread()?; + let submitted = unsafe { + crate::memory::memcpy_dtoh_async( host.as_mut_ptr(), self.ptr, self.num_bytes(), stream.cu_stream(), - )?; + ) + }; + let completed = stream.synchronize(); + if let Err(error) = completed { + // The driver has not established that it stopped writing host memory. + std::mem::forget((host, lease)); + return Err(error); + } + submitted?; + unsafe { + host.set_len(self.len); } - stream.synchronize()?; - unsafe { host.set_len(self.len) }; Ok(host) } @@ -666,22 +750,26 @@ impl DeviceBuffer { /// /// Synchronizes on `stream` before returning. Panics if /// `dst.len() < self.len()`. - pub fn copy_to_host(&self, stream: &CudaStream, dst: &mut [T]) -> Result<(), DriverError> { - assert!( - dst.len() >= self.len, - "destination slice too small: {} < {}", - dst.len(), - self.len - ); - unsafe { - crate::simt::memory::memcpy_dtoh_async( + pub fn copy_to_host(&self, stream: &Stream, dst: &mut [T]) -> Result<(), DriverError> { + assert!(dst.len() >= self.len(), "destination host slice too small"); + if self.num_bytes() == 0 { + return Ok(()); + } + let lease = self.storage.acquire(stream, false, false)?; + self.storage.context().bind_to_thread()?; + let submitted = unsafe { + crate::memory::memcpy_dtoh_async( dst.as_mut_ptr(), self.ptr, self.num_bytes(), stream.cu_stream(), - )?; + ) + }; + let completed = stream.synchronize(); + if completed.is_err() { + std::mem::forget(lease); } - stream.synchronize() + submitted.and(completed) } /// Copies the buffer contents into an existing pinned host buffer and @@ -695,7 +783,7 @@ impl DeviceBuffer { /// synchronize the stream later. pub fn copy_to_pinned_host( &self, - stream: &CudaStream, + stream: &Stream, dst: &mut PinnedHostBuffer, ) -> Result<(), DriverError> { // SAFETY: we synchronize the stream below before returning, so the @@ -713,7 +801,7 @@ impl DeviceBuffer { /// `PinnedHostBuffer` currently uses `cuMemAllocHost` without the /// `PORTABLE` flag, so the allocation is only pinned in the context that /// created it. In debug builds this asserts that `dst` and `stream` - /// share the same [`CudaContext`]. + /// share the same [`Context`]. /// /// # Safety /// @@ -721,33 +809,35 @@ impl DeviceBuffer { /// returns; CUDA may still be writing into `dst`'s pinned pointer long /// after this function returns. The caller is responsible for ensuring /// `dst` is not dropped, freed, read, or aliased until the enqueued copy - /// has completed, typically after the next [`CudaStream::synchronize`] + /// has completed, typically after the next [`Stream::synchronize`] /// call or a stream-ordered event wait. Dropping `dst` before that /// synchronization point calls `cuMemFreeHost` while the in-flight /// transfer is still writing the buffer, which is undefined behavior. pub unsafe fn copy_to_pinned_host_async( &self, - stream: &CudaStream, + stream: &Stream, dst: &mut PinnedHostBuffer, ) -> Result<(), DriverError> { - debug_assert!( - Arc::ptr_eq(dst.context(), stream.context()), - "pinned host buffer and stream must belong to the same CUDA context" - ); assert!( - dst.len() >= self.len, - "destination pinned host buffer too small: {} < {}", - dst.len(), - self.len + dst.len() >= self.len(), + "destination pinned host buffer too small" ); - unsafe { - crate::simt::memory::memcpy_dtoh_async( + if dst.context().as_ref() != self.storage.context().as_ref() { + return Err(DriverError( + cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_CONTEXT, + )); + } + if self.num_bytes() == 0 { + return Ok(()); + } + self.enqueue_access(stream, false, || unsafe { + crate::memory::memcpy_dtoh_async( dst.as_mut_ptr(), self.ptr, self.num_bytes(), stream.cu_stream(), ) - } + }) } /// Enqueues a host-to-device copy from a pinned host buffer into this @@ -763,8 +853,8 @@ impl DeviceBuffer { /// /// `PinnedHostBuffer` currently uses `cuMemAllocHost` without the /// `PORTABLE` flag, so the allocation is only pinned in the context that - /// created it. In debug builds this asserts that `src` and `stream` - /// share the same [`CudaContext`]. + /// created it. This checks that `src` and `stream` share the same + /// CUDA context. /// /// # Safety /// @@ -773,34 +863,35 @@ impl DeviceBuffer { /// after this function returns. The caller is responsible for ensuring /// `src` is not dropped, freed, mutated, or aliased until the enqueued /// copy has completed, typically after the next - /// [`CudaStream::synchronize`] call or a stream-ordered event wait. + /// [`Stream::synchronize`] call or a stream-ordered event wait. /// Dropping `src` before that synchronization point calls /// `cuMemFreeHost` while the in-flight transfer is still reading the /// buffer, which is undefined behavior. pub unsafe fn copy_from_pinned_host_async( &mut self, - stream: &CudaStream, + stream: &Stream, src: &PinnedHostBuffer, ) -> Result<(), DriverError> { - debug_assert!( - Arc::ptr_eq(src.context(), stream.context()), - "pinned host buffer and stream must belong to the same CUDA context" - ); assert!( - src.len() <= self.len, - "source pinned host buffer too large: {} > {}", - src.len(), - self.len + src.len() <= self.len(), + "source pinned host buffer too large" ); - let num_bytes = src.num_bytes(); - unsafe { - crate::simt::memory::memcpy_htod_async( + if src.context().as_ref() != self.storage.context().as_ref() { + return Err(DriverError( + cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_CONTEXT, + )); + } + if src.num_bytes() == 0 { + return Ok(()); + } + self.enqueue_access(stream, true, || unsafe { + crate::memory::memcpy_htod_async( self.ptr, src.as_ptr(), - num_bytes, + src.num_bytes(), stream.cu_stream(), ) - } + }) } /// Allocates `len` elements of uninitialized device memory, enqueued on @@ -810,16 +901,15 @@ impl DeviceBuffer { /// the returned buffer are undefined until the caller writes them. /// /// The buffer co-owns `stream` (via the `Arc`) so its implicit `Drop` can - /// release the stream-ordered allocation after synchronizing the context. - /// Call the unsafe [`Self::drop_async`] to free explicitly on a chosen - /// stream without a context-wide synchronization. + /// retire the stream-ordered allocation after tracked accesses complete. + /// Unsafe callers must establish allocation and use ordering. /// /// # Safety /// /// Reading from the returned buffer before any kernel or memcpy has /// written it is undefined behavior. pub unsafe fn uninitialized_async( - stream: &Arc, + stream: &Arc, len: usize, ) -> Result { let ctx = stream.context().clone(); @@ -830,15 +920,13 @@ impl DeviceBuffer { return Ok(unsafe { Self::from_raw_parts(0, len, ctx) }); } - let ptr = unsafe { crate::simt::memory::malloc_async(stream.cu_stream(), num_bytes)? }; - Ok(Self { - ptr, - len, - num_bytes, - ctx, - dealloc_stream: Some(stream.clone()), - _marker: PhantomData, - }) + ctx.bind_to_thread()?; + let ptr = unsafe { crate::memory::malloc_async(stream.cu_stream(), num_bytes)? }; + let mut buffer = unsafe { + Self::from_raw_parts_with_dealloc_stream(ptr, len, ctx, Some(stream.clone())) + }; + buffer.shared_access_writes = false; + Ok(buffer) } /// Copies `other` into `self` device-to-device, enqueued on `stream`. @@ -847,24 +935,39 @@ impl DeviceBuffer { pub fn copy_from_device_async( &mut self, other: &DeviceBuffer, - stream: &CudaStream, + stream: &Stream, ) -> Result<(), DriverError> { - assert_eq!( - self.len, other.len, - "device-to-device copy length mismatch: dst {} != src {}", - self.len, other.len - ); + assert_eq!(self.len, other.len, "device-to-device copy length mismatch"); if self.num_bytes() == 0 { return Ok(()); } - unsafe { - crate::simt::memory::memcpy_dtod_async( - self.ptr, - other.ptr, - self.num_bytes(), - stream.cu_stream(), - ) + if self.storage.context().as_ref() != stream.context().as_ref() + || other.storage.context().as_ref() != self.storage.context().as_ref() + { + return Err(DriverError( + cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_CONTEXT, + )); + } + if self.ptr == other.ptr { + return Ok(()); + } + if self.ptr < other.ptr + other.num_bytes as u64 + && other.ptr < self.ptr + self.num_bytes as u64 + { + return Err(DriverError( + cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE, + )); } + self.enqueue_access(stream, true, || { + other.enqueue_access(stream, false, || unsafe { + crate::memory::memcpy_dtod_async( + self.ptr, + other.ptr, + self.num_bytes(), + stream.cu_stream(), + ) + }) + }) } /// Copies `src` into `self` host-to-device on `stream` and synchronizes @@ -873,7 +976,7 @@ impl DeviceBuffer { /// The synchronization keeps this safe for borrowed host slices: `src` /// may be dropped, reused, or mutated immediately after this function /// returns. Panics if `src.len() != self.len()`. - pub fn copy_from_host(&mut self, stream: &CudaStream, src: &[T]) -> Result<(), DriverError> { + pub fn copy_from_host(&mut self, stream: &Stream, src: &[T]) -> Result<(), DriverError> { // SAFETY: this safe wrapper synchronizes `stream` before returning, // so the borrowed host slice cannot be used by CUDA after this call. let enqueue_result = unsafe { self.copy_from_host_async_unchecked(stream, src) }; @@ -895,31 +998,25 @@ impl DeviceBuffer { /// still be reading from `src` after the borrow is released. The caller /// must ensure `src` is not dropped, freed, mutated, or aliased until the /// enqueued copy has completed, typically after the next - /// [`CudaStream::synchronize`] call or a stream-ordered event wait. + /// [`Stream::synchronize`] call or a stream-ordered event wait. /// Panics if `src.len() != self.len()`. pub unsafe fn copy_from_host_async_unchecked( &mut self, - stream: &CudaStream, + stream: &Stream, src: &[T], ) -> Result<(), DriverError> { - assert_eq!( - self.len, - src.len(), - "host-to-device copy length mismatch: dst {} != src {}", - self.len, - src.len() - ); + assert_eq!(self.len, src.len(), "host-to-device copy length mismatch"); if self.num_bytes() == 0 { return Ok(()); } - unsafe { - crate::simt::memory::memcpy_htod_async( + self.enqueue_access(stream, true, || unsafe { + crate::memory::memcpy_htod_async( self.ptr, src.as_ptr(), self.num_bytes(), stream.cu_stream(), ) - } + }) } /// Consumes the buffer and frees it asynchronously on `stream`. @@ -939,42 +1036,33 @@ impl DeviceBuffer { /// /// The caller must ensure that every stream other than the allocation /// stream that has pending work touching this buffer is ordered before - /// `stream` (for example via [`CudaStream::join`]). Only the allocation + /// `stream` (for example via [`Stream::join`]). Only the allocation /// stream is joined automatically; an unordered third stream still /// racing the free is a driver-level use-after-free. This is the same /// deferred-use contract as [`Self::copy_from_host_async_unchecked`]: - /// ordinary [`Drop`] is the safe alternative and synchronizes the whole - /// context first. - pub unsafe fn drop_async(mut self, stream: &CudaStream) -> Result<(), DriverError> { - if self.ctx.as_ref() != stream.context().as_ref() { + /// ordinary [`Drop`] relies on completion leases acquired by safe APIs. + /// Unsafe raw-pointer launches must retain their own completion leases. + pub unsafe fn drop_async(self, stream: &Stream) -> Result<(), DriverError> { + if self.context().as_ref() != stream.context().as_ref() { return Err(DriverError( cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_CONTEXT, )); } - if self.ptr == 0 { - return Ok(()); - } - - self.ctx.bind_to_thread()?; - if let Some(allocation_stream) = &self.dealloc_stream { - if allocation_stream.as_ref() != stream { - stream.join(allocation_stream)?; - } + stream.context().bind_to_thread()?; + if let Some(allocation_stream) = self.storage.allocation_stream() { + stream.join(allocation_stream)?; } - - let ptr = self.ptr; - self.ptr = 0; - unsafe { crate::simt::memory::free_async(ptr, stream.cu_stream()) } + crate::completion::retain_until_complete(self.storage, stream) } /// Zeroes every byte in the buffer asynchronously on `stream`. - pub fn zero_async(&mut self, stream: &CudaStream) -> Result<(), DriverError> { + pub fn zero_async(&mut self, stream: &Stream) -> Result<(), DriverError> { if self.num_bytes() == 0 { return Ok(()); } - unsafe { - crate::simt::memory::memset_d8_async(self.ptr, 0, self.num_bytes(), stream.cu_stream()) - } + self.enqueue_access(stream, true, || unsafe { + crate::memory::memset_d8_async(self.ptr, 0, self.num_bytes(), stream.cu_stream()) + }) } } @@ -1003,6 +1091,69 @@ fn chunk_cast_len(bytes: usize, addr: usize, elem_size: usize, align: usize) -> Some(bytes / elem_size) } +/// A borrowed contiguous typed view sharing its parent's allocation and access tracker. +pub struct DeviceBufferView<'a, T> { + storage: crate::RawDeviceBuffer, + shared_access_writes: bool, + len: usize, + _borrow: PhantomData<&'a DeviceBuffer>, +} +impl DeviceBufferView<'_, T> { + pub fn cu_deviceptr(&self) -> CUdeviceptr { + self.storage.cu_deviceptr() + } + pub fn len(&self) -> usize { + self.len + } + pub fn is_empty(&self) -> bool { + self.len == 0 + } + pub fn num_bytes(&self) -> usize { + self.storage.len_bytes() + } + pub fn context(&self) -> &Arc { + self.storage.context() + } + pub fn storage(&self) -> &crate::RawDeviceBuffer { + &self.storage + } + /// Whether a shared kernel reference may mutate elements through interior + /// mutability. Representation wrappers and unclassified raw types are + /// conservative; ordinary DeviceCopy values can share read accesses. + #[doc(hidden)] + pub fn shared_access_writes(&self) -> bool { + self.shared_access_writes + } +} + +impl<'a, T: DeviceCopy> DeviceBufferView<'a, T> { + /// Borrows initialized elements from shared byte storage without a copy. + /// + /// # Safety + /// The range must contain valid `T` values. All aliases must preserve that + /// validity and use the same access tracker for every device access. + pub unsafe fn borrow_storage( + storage: &'a crate::RawDeviceBuffer, + offset: usize, + len: usize, + ) -> Result { + let storage = storage.slice_bytes(offset, allocation_size::(len)?)?; + if !storage.is_empty() + && !(storage.cu_deviceptr() as usize).is_multiple_of(std::mem::align_of::()) + { + return Err(DriverError( + cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE, + )); + } + Ok(Self { + storage, + len, + shared_access_writes: false, + _borrow: PhantomData, + }) + } +} + #[cfg(test)] mod chunk_cast_tests { use super::chunk_cast_len; diff --git a/cuda-core/src/simt/embedded.rs b/cuda-core/src/embedded.rs similarity index 96% rename from cuda-core/src/simt/embedded.rs rename to cuda-core/src/embedded.rs index c146f58753..1bb8565184 100644 --- a/cuda-core/src/simt/embedded.rs +++ b/cuda-core/src/embedded.rs @@ -5,7 +5,7 @@ //! Loading CUDA modules from embedded device artifact bundles. -use crate::{CudaContext, CudaModule, DriverError}; +use crate::{Context, DriverError, Module}; use oxide_artifacts::ArtifactError; pub use oxide_artifacts::{ ArtifactCompileOptions, ArtifactDebugPolicy, ArtifactPayloadKind, OwnedArtifactBundle, @@ -43,7 +43,7 @@ impl EmbeddedModule { self.bundle.payload(kind) } - pub fn load(&self, ctx: &Arc) -> Result, EmbeddedModuleError> { + pub fn load(&self, ctx: &Arc) -> Result, EmbeddedModuleError> { let image = loadable_payload(&self.bundle).expect("EmbeddedModule always has a loadable payload"); ctx.load_module_from_image(image) @@ -78,9 +78,9 @@ pub fn embedded_modules_from_current_exe() -> Result, Embedd } pub fn load_embedded_module( - ctx: &Arc, + ctx: &Arc, name: &str, -) -> Result, EmbeddedModuleError> { +) -> Result, EmbeddedModuleError> { let module = embedded_modules_from_current_exe()? .into_iter() .find(|module| module.name() == name) @@ -90,9 +90,7 @@ pub fn load_embedded_module( module.load(ctx) } -pub fn load_first_embedded_module( - ctx: &Arc, -) -> Result, EmbeddedModuleError> { +pub fn load_first_embedded_module(ctx: &Arc) -> Result, EmbeddedModuleError> { let module = embedded_modules_from_current_exe()? .into_iter() .next() diff --git a/cuda-core/src/event.rs b/cuda-core/src/event.rs new file mode 100644 index 0000000000..93de0bddc2 --- /dev/null +++ b/cuda-core/src/event.rs @@ -0,0 +1,62 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +//! Event timing and configuration helpers. + +pub use crate::runtime::{Event, Event as CudaEvent}; +use crate::{Context, DriverError, IntoResult}; +use std::{mem::MaybeUninit, sync::Arc}; + +impl Context { + /// Creates a new CUDA event in this context. + /// + /// `flags` defaults to `CU_EVENT_DISABLE_TIMING` when `None`. Use + /// `Some(CU_EVENT_DEFAULT)` to enable timing queries via + /// [`Event::elapsed_ms`]. + pub fn new_event_with_flags( + self: &Arc, + flags: Option, + ) -> Result { + let flags = flags.unwrap_or(cuda_bindings::CUevent_flags_enum_CU_EVENT_DISABLE_TIMING); + self.bind_to_thread()?; + let mut cu_event = MaybeUninit::uninit(); + let cu_event = unsafe { + cuda_bindings::cuEventCreate(cu_event.as_mut_ptr(), flags).result()?; + cu_event.assume_init() + }; + Ok(Event { + cu_event, + context: self.clone(), + }) + } +} +impl Event { + /// Returns the raw `CUevent` handle. + pub fn cu_event(&self) -> cuda_bindings::CUevent { + self.cu_event + } + /// Returns the parent [`Context`]. + pub fn context(&self) -> &Arc { + &self.context + } + /// Returns the elapsed time in milliseconds between `self` (start) and + /// `end`. + /// + /// Both events are synchronized before querying. Both events must have + /// been created **without** `CU_EVENT_DISABLE_TIMING`; otherwise the + /// driver returns `CUDA_ERROR_INVALID_HANDLE`. + /// + /// `self` must have been recorded before `end` in wall-clock time. + pub fn elapsed_ms(&self, end: &Self) -> Result { + self.synchronize()?; + end.synchronize()?; + let mut ms: f32 = 0.0; + unsafe { + cuda_bindings::cu_event_elapsed_time(&mut ms as *mut _, self.cu_event, end.cu_event) + .result()?; + } + Ok(ms) + } +} diff --git a/cuda-core/src/simt/launch.rs b/cuda-core/src/launch.rs similarity index 99% rename from cuda-core/src/simt/launch.rs rename to cuda-core/src/launch.rs index ff1f37684b..a3a870ebc8 100644 --- a/cuda-core/src/simt/launch.rs +++ b/cuda-core/src/launch.rs @@ -10,7 +10,7 @@ //! proving that it matches a kernel is unsafe. Use a rank-preserving config and //! [`PreparedLaunch`] for the checked path. -use crate::{CudaFunction, CudaStream, DriverError}; +use crate::{DriverError, Function, Stream}; use std::error::Error; use std::fmt::{self, Display, Formatter}; use std::marker::PhantomData; @@ -867,7 +867,7 @@ impl From for LaunchContractError { /// value performs no contract query; it only compares the stream's context /// handle before the normal launch path binds that context. pub struct PreparedLaunch { - function: CudaFunction, + function: Function, config: LaunchConfig, _contract: PhantomData C>, } @@ -897,7 +897,7 @@ impl PreparedLaunch { /// relationship. #[doc(hidden)] pub unsafe fn __prepare( - function: CudaFunction, + function: Function, config: C::Config, ) -> Result { let raw = config.__raw(); @@ -1043,7 +1043,7 @@ impl PreparedLaunch { } /// Returns the prepared CUDA function. - pub fn function(&self) -> &CudaFunction { + pub fn function(&self) -> &Function { &self.function } @@ -1057,7 +1057,7 @@ impl PreparedLaunch { } /// Rejects a stream from a different context without making a driver call. - pub fn validate_stream(&self, stream: &CudaStream) -> Result<(), LaunchContractError> { + pub fn validate_stream(&self, stream: &Stream) -> Result<(), LaunchContractError> { let function_context = self.function.context(); let stream_context = stream.context(); if function_context.cu_ctx() == stream_context.cu_ctx() { diff --git a/cuda-core/src/simt/mod.rs b/cuda-core/src/launch_raw.rs similarity index 80% rename from cuda-core/src/simt/mod.rs rename to cuda-core/src/launch_raw.rs index 7f07b4c361..53c0b0f1fc 100644 --- a/cuda-core/src/simt/mod.rs +++ b/cuda-core/src/launch_raw.rs @@ -3,83 +3,20 @@ * SPDX-License-Identifier: Apache-2.0 */ -//! The cuda-oxide host surface. -//! -//! Everything under this module is the cuda-oxide host API, brought over -//! as-is for the shared host-crate migration rather than reconciled: -//! [`CudaContext`] lands next to this crate's own `Device`, and -//! [`LaunchConfig`] next to this crate's own `LaunchConfig`. The two surfaces -//! get reconciled after the repository migration, with both models in one -//! tree, and this module is deletable as a unit once that happens. -//! -//! Naming: everything cuda-oxide exposed at its crate root is re-exported -//! here, so `cuda_core::simt::X` is oxide's `cuda_core::X`. The crate root -//! additionally re-exports every name that does not collide with the -//! existing surface; the one collision is [`LaunchConfig`], which is -//! reachable only through this module. -//! -//! Differences from the cuda-oxide original, recorded for the -//! reconciliation: -//! -//! - `DeviceCopy` for the unstable `f16` primitive sits behind the -//! default-off `f16` cargo feature, since it is nightly-only; the -//! `half::f16` and `half::bf16` impls are always present. -//! - `#[derive(DeviceCopy)]` comes from the sibling `cuda-core-derive` -//! crate, extracted from cuda-oxide's `cuda-macros` so it is publishable. -//! - `vmm` and `peer` are copied like the rest; #202 remains the idiomatic -//! port of the VMM wrappers onto this crate's own runtime types. -//! - `init` and `launch_kernel` are not copied: the crate root already -//! exposes identical ones, re-exported below. -//! - `oxide-artifacts` comes from crates.io (cuda-oxide publishes it) and is -//! re-exported as [`artifacts`]. +//! Context-aware raw CUDA launch helpers. -pub mod context; -pub mod device_buffer; -pub mod embedded; -pub mod event; -pub mod launch; -pub mod memory; -pub mod module; -pub mod peer; -pub mod pinned_host_buffer; -pub mod stream; -pub mod vmm; +use crate::{launch_kernel, DriverError, Function, IntoResult, Stream}; -pub use context::{ContextLimit, CudaContext, StreamPriorityRange, SyncPolicy}; -/// `#[derive(DeviceCopy)]`, re-exported next to the trait so -/// `use cuda_core::DeviceCopy;` brings both into scope (serde pattern). -pub use cuda_core_derive::DeviceCopy; -pub use device_buffer::{DeviceBuffer, DeviceCopy}; -pub use embedded::{EmbeddedModule, EmbeddedModuleError}; -pub use event::CudaEvent; -pub use launch::{ - BlockRequirement, DeviceLaunchLimits, DynamicSharedMemoryRequirement, KernelLaunchConfig, - KernelLaunchContract, LaunchAxis, LaunchConfig, LaunchConfig1D, LaunchConfig2D, LaunchConfig3D, - LaunchContractError, LaunchContractSpec, LaunchDimension, PreparedLaunch, -}; -pub use module::{ConstantHandle, CudaFunction, CudaModule}; -pub use pinned_host_buffer::PinnedHostBuffer; -pub use stream::CudaStream; - -// The remaining items of oxide's crate root are identical on both surfaces; -// they are re-exported so `cuda_core::simt` mirrors it completely. -pub use crate::error::{DriverError, IntoResult}; -pub use crate::init; -pub use crate::launch_kernel; -pub use cuda_bindings as sys; -/// Artifact-bundle metadata, from the published crate cuda-oxide releases. -pub use oxide_artifacts as artifacts; - -/// Launches a CUDA kernel on a specific [`CudaStream`], binding its context first. +/// Launches a CUDA kernel on a specific [`Stream`], binding its context first. /// /// This is the usual host-side helper for `cuda_launch!` and async launches. /// It ensures the stream's owning context is current before calling the raw /// [`launch_kernel`] entry point, so callers do not need to manually call -/// [`CudaContext::bind_to_thread`] before every launch. +/// [`crate::Context::bind_to_thread`] before every launch. /// /// Unlike [`launch_kernel`], this helper works with typed wrappers rather than /// raw driver handles. It is therefore the preferred API whenever you already -/// have a [`CudaFunction`] and [`CudaStream`]. +/// have a [`Function`] and [`Stream`]. /// /// # Safety /// @@ -100,11 +37,11 @@ pub use oxide_artifacts as artifacts; /// `cuLaunchKernel` call rejects the launch. #[inline] pub unsafe fn launch_kernel_on_stream( - func: &CudaFunction, + func: &Function, grid_dim: (u32, u32, u32), block_dim: (u32, u32, u32), shared_mem_bytes: u32, - stream: &CudaStream, + stream: &Stream, kernel_params: &mut [*mut std::ffi::c_void], ) -> Result<(), DriverError> { stream.context().bind_to_thread()?; @@ -218,12 +155,12 @@ pub unsafe fn launch_kernel_ex( /// `cuLaunchKernelEx` call rejects the launch. #[inline] pub unsafe fn launch_kernel_ex_on_stream( - func: &CudaFunction, + func: &Function, grid_dim: (u32, u32, u32), block_dim: (u32, u32, u32), shared_mem_bytes: u32, cluster_dim: (u32, u32, u32), - stream: &CudaStream, + stream: &Stream, kernel_params: &mut [*mut std::ffi::c_void], ) -> Result<(), DriverError> { stream.context().bind_to_thread()?; @@ -330,11 +267,11 @@ pub unsafe fn launch_kernel_cooperative( /// `cuLaunchKernelEx` call rejects the launch. #[inline] pub unsafe fn launch_kernel_cooperative_on_stream( - func: &CudaFunction, + func: &Function, grid_dim: (u32, u32, u32), block_dim: (u32, u32, u32), shared_mem_bytes: u32, - stream: &CudaStream, + stream: &Stream, kernel_params: &mut [*mut std::ffi::c_void], ) -> Result<(), DriverError> { stream.context().bind_to_thread()?; @@ -447,12 +384,12 @@ pub unsafe fn launch_kernel_ex_cooperative( /// `cuLaunchKernelEx` call rejects the launch. #[inline] pub unsafe fn launch_kernel_ex_cooperative_on_stream( - func: &CudaFunction, + func: &Function, grid_dim: (u32, u32, u32), block_dim: (u32, u32, u32), shared_mem_bytes: u32, cluster_dim: (u32, u32, u32), - stream: &CudaStream, + stream: &Stream, kernel_params: &mut [*mut std::ffi::c_void], ) -> Result<(), DriverError> { stream.context().bind_to_thread()?; diff --git a/cuda-core/src/lib.rs b/cuda-core/src/lib.rs index 73cf8e529f..9d48e11132 100644 --- a/cuda-core/src/lib.rs +++ b/cuda-core/src/lib.rs @@ -7,12 +7,25 @@ #![cfg_attr(feature = "f16", feature(f16))] +pub mod allocation; mod api; +pub use allocation::{AllocationLease, DeviceAllocation, RawDeviceBuffer}; +pub mod completion; +pub mod context; pub(crate) mod cudarc_shim; +pub mod device_buffer; mod dtype; +pub mod embedded; mod error; +pub mod event; +pub mod launch; +mod launch_raw; +pub mod memory; +pub mod module; +pub mod peer; +pub mod pinned_host_buffer; mod runtime; -pub mod simt; +pub mod stream; pub mod vmm; pub use api::*; @@ -26,19 +39,18 @@ pub use dtype::*; pub use error::*; pub use runtime::*; -// The cuda-oxide surface, re-exported at the root where its consumers -// expect it. `simt::LaunchConfig` and `simt::vmm` are deliberately absent: -// they collide with this crate's own `LaunchConfig` and with the reviewed -// `vmm` module above (both forks of the same cuda-oxide ancestor), and stay -// reachable only through `simt::`. -pub use simt::embedded; -pub use simt::{ - launch_kernel_cooperative, launch_kernel_cooperative_on_stream, launch_kernel_ex, - launch_kernel_ex_cooperative, launch_kernel_ex_cooperative_on_stream, - launch_kernel_ex_on_stream, launch_kernel_on_stream, BlockRequirement, ConstantHandle, - ContextLimit, CudaContext, CudaEvent, CudaFunction, CudaModule, CudaStream, DeviceBuffer, - DeviceCopy, DeviceLaunchLimits, DynamicSharedMemoryRequirement, EmbeddedModule, - EmbeddedModuleError, KernelLaunchConfig, KernelLaunchContract, LaunchAxis, LaunchConfig1D, - LaunchConfig2D, LaunchConfig3D, LaunchContractError, LaunchContractSpec, LaunchDimension, - PinnedHostBuffer, PreparedLaunch, StreamPriorityRange, SyncPolicy, +pub use context::{ContextLimit, StreamPriorityRange, SyncPolicy}; +pub use cuda_core_derive::DeviceCopy; +pub use device_buffer::{DeviceBuffer, DeviceBufferView, DeviceCopy}; +pub use embedded::{EmbeddedModule, EmbeddedModuleError}; +pub use launch::*; +pub use launch_raw::*; +pub use module::ConstantHandle; +pub use oxide_artifacts as artifacts; +pub use pinned_host_buffer::PinnedHostBuffer; + +// Compatibility spellings are aliases of the shared handles, not separate runtimes. +pub use runtime::{ + Context as CudaContext, Event as CudaEvent, Function as CudaFunction, Module as CudaModule, + Stream as CudaStream, }; diff --git a/cuda-core/src/simt/memory.rs b/cuda-core/src/memory.rs similarity index 100% rename from cuda-core/src/simt/memory.rs rename to cuda-core/src/memory.rs diff --git a/cuda-core/src/simt/module.rs b/cuda-core/src/module.rs similarity index 64% rename from cuda-core/src/simt/module.rs rename to cuda-core/src/module.rs index a2b4cb646f..952a8a5f88 100644 --- a/cuda-core/src/simt/module.rs +++ b/cuda-core/src/module.rs @@ -3,98 +3,18 @@ * SPDX-License-Identifier: Apache-2.0 */ -//! CUDA module and function management (RAII, PTX/cubin loading). -//! -//! A [`CudaModule`] wraps a `CUmodule` loaded from PTX source or a cubin file. -//! [`CudaFunction`] extracts a kernel entry point from a loaded module by -//! symbol name. Both types are reference-counted and tie their lifetime to the -//! parent [`CudaContext`] / [`CudaModule`] respectively. -//! -//! # Typical workflow -//! -//! ```ignore -//! let ctx = CudaContext::new(0)?; -//! let module = ctx.load_module_from_ptx_src(ptx)?; -//! let kernel = module.load_function("my_kernel")?; -//! ``` -//! -//! # Raw CUDA interop -//! -//! Most users should load kernels with [`CudaModule::load_function`] and -//! launch them through cuda-oxide's typed launch helpers. Some CUDA-adjacent -//! libraries need the underlying driver handle to inspect or register -//! module-scope device state before launch. For those cases, -//! [`CudaModule::cu_module`] exposes a non-owning raw `CUmodule` handle under -//! an explicit `unsafe` contract. - -use crate::error::{DriverError, IntoResult}; -use crate::simt::context::CudaContext; -use std::borrow::Cow; -use std::ffi::{c_void, CString}; -use std::mem::MaybeUninit; -use std::sync::Arc; - -/// An RAII wrapper around a `CUmodule` handle. -/// -/// Holds an `Arc` to ensure the context outlives the module. -/// Unloaded automatically via `cuModuleUnload` on [`Drop`]. -#[derive(Debug)] -pub struct CudaModule { - /// Raw CUDA module handle. - pub(crate) cu_module: cuda_bindings::CUmodule, - /// Owning context. Kept alive for the lifetime of this module. - pub(crate) ctx: Arc, -} - -/// # Safety -/// -/// `CUmodule` handles are not thread-local. The CUDA driver permits querying -/// functions from a module on any thread, provided the owning context is bound. -unsafe impl Send for CudaModule {} -/// See [`Send`] impl. -unsafe impl Sync for CudaModule {} - -/// Unloads the module on drop. -/// -/// Binds the context to the current thread first (required by -/// `cuModuleUnload`). Errors are recorded on the context rather than -/// panicking. -impl Drop for CudaModule { - fn drop(&mut self) { - self.ctx.record_err(self.ctx.bind_to_thread()); - self.ctx - .record_err(unsafe { cuda_bindings::cuModuleUnload(self.cu_module).result() }); - } -} - -impl CudaContext { - /// JIT-compiles PTX source and loads the resulting module into this - /// context. - /// - /// `ptx_src` must be a valid, null-terminator-free PTX string. The driver - /// performs JIT compilation targeting the current device architecture. - /// - /// # Panics - /// - /// Panics if `ptx_src` contains interior null bytes. - pub fn load_module_from_ptx_src( - self: &Arc, - ptx_src: &str, - ) -> Result, DriverError> { - self.bind_to_thread()?; - let c_src = CString::new(ptx_src).unwrap(); - let cu_module = unsafe { - let mut cu_module = MaybeUninit::uninit(); - cuda_bindings::cuModuleLoadData(cu_module.as_mut_ptr(), c_src.as_ptr() as *const _) - .result()?; - cu_module.assume_init() - }; - Ok(Arc::new(CudaModule { - cu_module, - ctx: self.clone(), - })) - } - +//! Module globals and function resource queries. + +pub use crate::runtime::{Function, Module}; +use crate::{Context, DriverError, IntoResult}; +use std::{ + borrow::Cow, + ffi::{c_void, CString}, + mem::MaybeUninit, + sync::Arc, +}; + +impl Context { /// Loads a CUDA module from an in-memory image. /// /// `image` may be PTX source bytes, a cubin, or a fatbin. PTX text is @@ -104,7 +24,7 @@ impl CudaContext { pub fn load_module_from_image( self: &Arc, image: &[u8], - ) -> Result, DriverError> { + ) -> Result, DriverError> { self.bind_to_thread()?; let image = null_terminated_image(image); let cu_module = unsafe { @@ -113,151 +33,24 @@ impl CudaContext { .result()?; cu_module.assume_init() }; - Ok(Arc::new(CudaModule { + Ok(Arc::new(Module { cu_module, - ctx: self.clone(), - })) - } - - /// Loads a module from a cubin or PTX file on disk. - /// - /// `filename` is the filesystem path. The driver selects the loader based - /// on file contents (PTX text or cubin ELF). - /// - /// # Panics - /// - /// Panics if `filename` contains interior null bytes. - pub fn load_module_from_file( - self: &Arc, - filename: &str, - ) -> Result, DriverError> { - self.bind_to_thread()?; - let c_str = CString::new(filename).unwrap(); - let mut cu_module = MaybeUninit::uninit(); - let cu_module = unsafe { - cuda_bindings::cuModuleLoad(cu_module.as_mut_ptr(), c_str.as_ptr()).result()?; - cu_module.assume_init() - }; - Ok(Arc::new(CudaModule { - cu_module, - ctx: self.clone(), + context: self.clone(), + owned: true, })) } } - -fn null_terminated_image(image: &[u8]) -> Cow<'_, [u8]> { - if image.last() == Some(&0) { - Cow::Borrowed(image) - } else { - let mut owned = Vec::with_capacity(image.len() + 1); - owned.extend_from_slice(image); - owned.push(0); - Cow::Owned(owned) - } -} - -/// A handle to a device kernel entry point within a loaded [`CudaModule`]. -/// -/// Holds an `Arc` so the module (and transitively the context) -/// remains loaded for the lifetime of this handle. Cloning is cheap (just an -/// `Arc` bump). -#[derive(Debug, Clone)] -pub struct CudaFunction { - /// Raw CUDA function handle. - pub(crate) cu_function: cuda_bindings::CUfunction, - /// Owning module. Prevents unloading while this function handle exists. - #[allow(unused)] - pub(crate) module: Arc, -} - -/// # Safety -/// -/// `CUfunction` handles are derived from a `CUmodule` and valid in any thread -/// that has the owning context bound. -unsafe impl Send for CudaFunction {} -/// See [`Send`] impl. -unsafe impl Sync for CudaFunction {} - -impl CudaModule { - /// Returns the parent [`CudaContext`]. +impl Module { + /// Returns the parent [`Context`]. /// /// This is mainly useful when interoperating with raw CUDA driver APIs: - /// call [`CudaContext::bind_to_thread`] on this context before passing raw + /// call [`Context::bind_to_thread`] on this context before passing raw /// module/function handles to APIs that require the owning context to be /// current on the calling host thread. - pub fn context(&self) -> &Arc { - &self.ctx - } - - /// Returns the raw `CUmodule` handle owned by this wrapper. - /// - /// This is an escape hatch for CUDA driver interop libraries that need to - /// inspect or register a loaded module directly. For example, NVSHMEM uses - /// module-level state and may need the raw `CUmodule` before launching a - /// kernel that calls into NVSHMEM device code. - /// - /// The returned handle is copied by value, but it is non-owning. - /// cuda-oxide still owns the module and will unload it when the last - /// [`Arc`] owning this module is dropped. - /// - /// # Safety - /// - /// - The returned handle is valid only while this [`CudaModule`] remains - /// alive. If the handle is stored outside the immediate call, the caller - /// must keep an [`Arc`] to this module alive for at least as long. - /// - The caller must not unload the module through the raw handle, transfer - /// ownership of it, or pass it to any API that may invalidate module, - /// function, or global handles owned by cuda-oxide. - /// - Before passing the handle to CUDA driver APIs or interop libraries - /// that make driver calls, the caller must ensure this module's owning - /// context is current on the calling host thread, for example with - /// [`CudaModule::context`] followed by - /// [`CudaContext::bind_to_thread`]. - /// - Any foreign library that retains this handle must obey the same - /// lifetime and context-current requirements. cuda-oxide cannot enforce - /// those requirements once the raw handle leaves Rust's type system. - pub unsafe fn cu_module(&self) -> cuda_bindings::CUmodule { - self.cu_module - } - - /// Looks up a kernel entry point by `fn_name` in this module. - /// - /// The returned [`CudaFunction`] holds an `Arc` back to this module, - /// preventing unloading while the handle is live. - /// - /// This method first binds the module's owning context to the calling - /// thread, then performs `cuModuleGetFunction`. That makes it safe to look - /// up functions from any host thread, provided the module and its context - /// are still alive. - /// - /// # Errors - /// - /// Returns an error if binding the module's context fails or if - /// `cuModuleGetFunction` cannot resolve `fn_name` in this module. - /// - /// # Panics - /// - /// Panics if `fn_name` contains interior null bytes. - pub fn load_function(self: &Arc, fn_name: &str) -> Result { - self.ctx.bind_to_thread()?; - let c_name = CString::new(fn_name).unwrap(); - let cu_function = unsafe { - let mut cu_function = MaybeUninit::uninit(); - cuda_bindings::cuModuleGetFunction( - cu_function.as_mut_ptr(), - self.cu_module, - c_name.as_ptr(), - ) - .result()?; - cu_function.assume_init() - }; - Ok(CudaFunction { - cu_function, - module: self.clone(), - }) + pub fn context(&self) -> &Arc { + &self.context } } - /// A resolved handle to a `#[constant]` device global. Macro-generated /// `set_` methods resolve these lazily on first use and cache the /// handle on the `LoadedModule` struct. Callers pass `size_of::()` on @@ -270,7 +63,7 @@ pub struct ConstantHandle { impl ConstantHandle { /// Construct from a raw device pointer. Used by macro-generated - /// `LoadedModule` initializers after [`CudaModule::get_global`] has + /// `LoadedModule` initializers after [`Module::get_global`] has /// resolved the symbol and the size has been asserted against /// `size_of::()`. /// @@ -293,14 +86,12 @@ impl ConstantHandle { /// - The bytes must have a layout compatible with the device-side type. pub unsafe fn write_async( &self, - stream: &crate::CudaStream, + stream: &crate::Stream, src: *const u8, num_bytes: usize, ) -> Result<(), DriverError> { stream.context().bind_to_thread()?; - unsafe { - crate::simt::memory::memcpy_htod_async(self.dptr, src, num_bytes, stream.cu_stream()) - } + unsafe { crate::memory::memcpy_htod_async(self.dptr, src, num_bytes, stream.cu_stream()) } } /// Stream-ordered `cuMemcpyHtoDAsync` from owned host bytes into the @@ -311,7 +102,7 @@ impl ConstantHandle { /// caller passes a temporary such as `&3.0`. pub fn write_async_staged( &self, - stream: &crate::CudaStream, + stream: &crate::Stream, bytes: Box<[MaybeUninit]>, ) -> Result<(), DriverError> { stream.context().bind_to_thread()?; @@ -321,7 +112,7 @@ impl ConstantHandle { } unsafe { - crate::simt::memory::memcpy_htod_async( + crate::memory::memcpy_htod_async( self.dptr, bytes.as_ptr() as *const u8, num_bytes, @@ -370,7 +161,7 @@ impl ConstantHandle { /// Same contract as [`write_async`](Self::write_async). pub unsafe fn write_blocking( &self, - module: &Arc, + module: &Arc, src: *const u8, num_bytes: usize, ) -> Result<(), DriverError> { @@ -378,7 +169,7 @@ impl ConstantHandle { } } -impl CudaModule { +impl Module { /// Resolves a device global by name and returns its device pointer and /// size in bytes. /// @@ -402,7 +193,7 @@ impl CudaModule { self: &Arc, name: &str, ) -> Result<(cuda_bindings::CUdeviceptr, usize), DriverError> { - self.ctx.bind_to_thread()?; + self.context.bind_to_thread()?; let c_name = CString::new(name).unwrap(); let mut dptr = MaybeUninit::::uninit(); let mut size = MaybeUninit::::uninit(); @@ -439,12 +230,12 @@ impl CudaModule { src: *const u8, num_bytes: usize, ) -> Result<(), DriverError> { - self.ctx.bind_to_thread()?; - unsafe { crate::simt::memory::memcpy_htod_sync(dptr, src, num_bytes) } + self.context.bind_to_thread()?; + unsafe { crate::memory::memcpy_htod_sync(dptr, src, num_bytes) } } } -impl CudaFunction { +impl Function { fn attribute( &self, attribute: cuda_bindings::CUfunction_attribute, @@ -460,7 +251,7 @@ impl CudaFunction { } /// Returns the context that owns this function. - pub fn context(&self) -> &Arc { + pub fn context(&self) -> &Arc { self.module.context() } @@ -497,7 +288,7 @@ impl CudaFunction { /// bytes. /// /// This is the per-thread quantity that - /// [`CudaContext::set_stack_size`](crate::simt::context::CudaContext::set_stack_size) + /// [`Context::set_stack_size`](crate::context::Context::set_stack_size) /// budgets for: the driver reserves the stack limit for every resident /// thread on the device, so a kernel with a large frame can reserve /// device memory far in excess of anything it allocates explicitly. @@ -681,20 +472,15 @@ impl CudaFunction { .map_err(|_| DriverError(cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE)) } } +} - /// Returns the raw `CUfunction` handle. - /// - /// # Safety - /// - /// The returned handle is copied by value, but it is non-owning. It is - /// invalidated if the parent [`CudaModule`] is dropped. - /// - /// Because [`CudaFunction`] holds an [`Arc`] to its parent module, the - /// module cannot be unloaded while `self` is alive. If the raw handle is - /// stored outside the immediate call, the caller must keep this - /// [`CudaFunction`] or another [`Arc`] owning the parent module alive for - /// at least as long as the raw handle is used. - pub unsafe fn cu_function(&self) -> cuda_bindings::CUfunction { - self.cu_function +fn null_terminated_image(image: &[u8]) -> Cow<'_, [u8]> { + if image.last() == Some(&0) { + Cow::Borrowed(image) + } else { + let mut owned = Vec::with_capacity(image.len() + 1); + owned.extend_from_slice(image); + owned.push(0); + Cow::Owned(owned) } } diff --git a/cuda-core/src/simt/peer.rs b/cuda-core/src/peer.rs similarity index 89% rename from cuda-core/src/simt/peer.rs rename to cuda-core/src/peer.rs index 4b67f79337..076207697e 100644 --- a/cuda-core/src/simt/peer.rs +++ b/cuda-core/src/peer.rs @@ -12,8 +12,8 @@ //! P2P access depends on hardware topology. Use `can_access_peer` to query //! support before calling `enable_peer_access`. +use crate::context::Context; use crate::error::{DriverError, IntoResult}; -use crate::simt::context::CudaContext; use std::mem::MaybeUninit; use std::sync::Arc; @@ -25,7 +25,7 @@ use std::sync::Arc; /// /// This is a query only -- it does not enable access. Call `enable_peer_access` /// to actually enable it. -pub fn can_access_peer(from: &CudaContext, to: &CudaContext) -> Result { +pub fn can_access_peer(from: &Context, to: &Context) -> Result { let mut can_access = MaybeUninit::uninit(); unsafe { cuda_bindings::cuDeviceCanAccessPeer( @@ -49,10 +49,7 @@ pub fn can_access_peer(from: &CudaContext, to: &CudaContext) -> Result, - to: &Arc, -) -> Result<(), DriverError> { +pub fn enable_peer_access(from: &Arc, to: &Arc) -> Result<(), DriverError> { from.bind_to_thread()?; let result = unsafe { cuda_bindings::cuCtxEnablePeerAccess(to.cu_ctx(), 0) }; match result { @@ -67,10 +64,7 @@ pub fn enable_peer_access( /// After this call, direct memory access from `from` to `to` is no longer /// possible. Any in-flight operations accessing peer memory must have completed /// before calling this. -pub fn disable_peer_access( - from: &Arc, - to: &Arc, -) -> Result<(), DriverError> { +pub fn disable_peer_access(from: &Arc, to: &Arc) -> Result<(), DriverError> { from.bind_to_thread()?; let result = unsafe { cuda_bindings::cuCtxDisablePeerAccess(to.cu_ctx()) }; match result { diff --git a/cuda-core/src/simt/pinned_host_buffer.rs b/cuda-core/src/pinned_host_buffer.rs similarity index 91% rename from cuda-core/src/simt/pinned_host_buffer.rs rename to cuda-core/src/pinned_host_buffer.rs index 1795eaaff5..5ed2382fb1 100644 --- a/cuda-core/src/simt/pinned_host_buffer.rs +++ b/cuda-core/src/pinned_host_buffer.rs @@ -18,9 +18,9 @@ use std::ptr::NonNull; use std::slice; use std::sync::Arc; +use crate::context::Context; +use crate::device_buffer::DeviceCopy; use crate::error::DriverError; -use crate::simt::context::CudaContext; -use crate::simt::device_buffer::DeviceCopy; /// Owned page-locked host buffer. /// @@ -33,8 +33,8 @@ use crate::simt::device_buffer::DeviceCopy; /// as [`String`] are rejected. /// /// ```compile_fail -/// # use cuda_core::{CudaContext, PinnedHostBuffer}; -/// # fn rejects_non_device_copy(ctx: &std::sync::Arc) { +/// # use cuda_core::{Context, PinnedHostBuffer}; +/// # fn rejects_non_device_copy(ctx: &std::sync::Arc) { /// let _ = PinnedHostBuffer::::zeroed(ctx, 1); /// # } /// ``` @@ -44,7 +44,7 @@ pub struct PinnedHostBuffer { allocation: Option>, len: usize, num_bytes: usize, - ctx: Arc, + ctx: Arc, _marker: PhantomData, } @@ -56,7 +56,7 @@ unsafe impl Sync for PinnedHostBuffer {} impl PinnedHostBuffer { /// Allocates a pinned host buffer and fills it with zero bytes. - pub fn zeroed(ctx: &Arc, len: usize) -> Result { + pub fn zeroed(ctx: &Arc, len: usize) -> Result { let mut buffer = Self::allocate(ctx, len)?; if buffer.num_bytes != 0 { unsafe { @@ -68,7 +68,7 @@ impl PinnedHostBuffer { } /// Allocates a pinned host buffer and copies `data` into it. - pub fn from_slice(ctx: &Arc, data: &[T]) -> Result { + pub fn from_slice(ctx: &Arc, data: &[T]) -> Result { let buffer = Self::allocate(ctx, data.len())?; if !data.is_empty() { unsafe { @@ -98,7 +98,7 @@ impl PinnedHostBuffer { /// Returns the CUDA context used to allocate this buffer. #[inline] - pub fn context(&self) -> &Arc { + pub fn context(&self) -> &Arc { &self.ctx } @@ -126,13 +126,13 @@ impl PinnedHostBuffer { unsafe { slice::from_raw_parts_mut(self.ptr.as_ptr(), self.len) } } - fn allocate(ctx: &Arc, len: usize) -> Result { + fn allocate(ctx: &Arc, len: usize) -> Result { let (num_bytes, allocation_bytes) = allocation_sizes::(len)?; let (ptr, allocation) = if num_bytes == 0 { (NonNull::dangling(), None) } else { ctx.bind_to_thread()?; - let raw = unsafe { crate::simt::memory::malloc_host(allocation_bytes)? }; + let raw = unsafe { crate::memory::malloc_host(allocation_bytes)? }; let allocation = NonNull::new(raw.cast::()).ok_or(DriverError( cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE, ))?; @@ -162,7 +162,7 @@ impl Drop for PinnedHostBuffer { if let Some(allocation) = self.allocation { self.ctx.record_err(self.ctx.bind_to_thread()); self.ctx - .record_err(unsafe { crate::simt::memory::free_host(allocation.as_ptr().cast()) }); + .record_err(unsafe { crate::memory::free_host(allocation.as_ptr().cast()) }); } } } diff --git a/cuda-core/src/runtime.rs b/cuda-core/src/runtime.rs index b1893e92b5..07200048cf 100644 --- a/cuda-core/src/runtime.rs +++ b/cuda-core/src/runtime.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -//! CUDA runtime types: Device, Stream, Module, Function, LaunchConfig. +//! CUDA runtime types: Context, Stream, Module, Function, LaunchConfig. //! //! These are the public API of `cuda-core`. They wrap raw CUDA driver //! handles with RAII lifetimes and provide `borrow_raw` constructors @@ -16,17 +16,6 @@ use crate::cudarc_shim::{ctx, device, module, pool, primary_ctx, stream}; use crate::error::*; use crate::init; -/// Kernel launch configuration specifying grid, block, and shared memory sizes. -#[derive(Clone, Copy, Debug)] -pub struct LaunchConfig { - /// Grid dimensions `(x, y, z)` in thread blocks. - pub grid_dim: (u32, u32, u32), - /// Block dimensions `(x, y, z)` in threads. - pub block_dim: (u32, u32, u32), - /// Bytes of dynamic shared memory per block. - pub shared_mem_bytes: u32, -} - /// Anything that owns an external CUDA resource. A borrowed handle can hold an /// `Arc` as a *liveness token*: while the handle (and anything /// derived from it) is alive, the token's refcount is nonzero, so the external @@ -72,38 +61,88 @@ impl PartialEq for KeepAlive { } impl Eq for KeepAlive {} -/// A GPU device handle wrapping a CUDA primary context. +/// A physical CUDA device identity, independent of any CUDA context. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct Device { + cu_device: cuda_bindings::CUdevice, + ordinal: usize, +} + +impl Device { + /// Looks up a device without retaining its primary context. + pub fn new(ordinal: usize) -> Result { + let raw = ordinal_to_c_int(ordinal)?; + unsafe { init(0)? }; + Ok(Self { + cu_device: device::get(raw)?, + ordinal, + }) + } + /// Returns the physical device ordinal. + pub fn ordinal(&self) -> usize { + self.ordinal + } + /// Returns the raw physical device handle. + pub fn cu_device(&self) -> cuda_bindings::CUdevice { + self.cu_device + } + /// Returns the device name. + pub fn name(&self) -> Result { + device::get_name(self.cu_device) + } + /// Retains this device's primary context for resource creation and submission. + pub fn primary_context(&self) -> Result, DriverError> { + Context::new(self.ordinal) + } + /// Returns the number of CUDA devices. + pub fn device_count() -> Result { + Context::device_count() + } +} + +impl Context { + /// The physical device hosting this context. Equal devices do not imply equal contexts. + pub fn device(&self) -> Device { + Device { + cu_device: self.cu_device, + ordinal: self.ordinal, + } + } +} + +/// A CUDA execution context, distinct from its physical [`Device`]. /// -/// Can be **owned** (created via [`Device::new`], releases the primary context -/// on drop), **borrowed** (created via [`Device::borrow_raw`], does NOT release -/// on drop), or **foreign** (created via [`Device::borrow_with_owner`], holds a +/// Can be **owned** (created via [`Context::new`], releases the primary context +/// on drop), **borrowed** (created via [`Context::borrow_raw`], does NOT release +/// on drop), or **foreign** (created via [`Context::borrow_with_owner`], holds a /// liveness token so the external owner outlives it). #[derive(Debug)] -pub struct Device { +pub struct Context { pub(crate) cu_device: cuda_bindings::CUdevice, pub(crate) cu_ctx: cuda_bindings::CUcontext, pub(crate) ordinal: usize, - owned: bool, - _keep_alive: KeepAlive, + pub(crate) owned: bool, + pub(crate) _keep_alive: KeepAlive, + pub(crate) error_state: std::sync::atomic::AtomicU32, } -unsafe impl Send for Device {} -unsafe impl Sync for Device {} +unsafe impl Send for Context {} +unsafe impl Sync for Context {} -impl Drop for Device { +impl Drop for Context { fn drop(&mut self) { if !self.owned { return; } let _guard = teardown_lock(); - // Streams hold an Arc, so by the time the last device handle + // Streams hold an Arc, so by the time the last device handle // for this ordinal drops, every pooled handle is idle; the context // release below reclaims them. Discard so a later re-retain cannot // pop a handle from a torn-down context. stream_pool() .lock() .unwrap_or_else(|poisoned| poisoned.into_inner()) - .remove(&self.ordinal); + .remove(&(self.cu_ctx as usize)); let _ = self.bind_to_thread(); let ctx = std::mem::replace(&mut self.cu_ctx, std::ptr::null_mut()); if !ctx.is_null() { @@ -112,14 +151,14 @@ impl Drop for Device { } } -impl PartialEq for Device { +impl PartialEq for Context { fn eq(&self, other: &Self) -> bool { self.cu_device == other.cu_device && self.cu_ctx == other.cu_ctx && self.ordinal == other.ordinal } } -impl Eq for Device {} +impl Eq for Context {} /// The driver indexes devices with a C `int`. An ordinal that does not fit is /// not a device at all; `as c_int` would wrap it onto some other device's @@ -129,7 +168,7 @@ fn ordinal_to_c_int(ordinal: usize) -> Result { .map_err(|_| DriverError(cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_DEVICE)) } -impl Device { +impl Context { /// Creates a new owned device on the specified ordinal. /// /// Errors with `CUDA_ERROR_INVALID_DEVICE` (before touching the driver) @@ -139,15 +178,16 @@ impl Device { unsafe { init(0)? }; let cu_device = device::get(cu_ordinal)?; let cu_ctx = unsafe { primary_ctx::retain(cu_device) }?; - let device = Arc::new(Device { + let context = Arc::new(Context { cu_device, cu_ctx, ordinal, owned: true, _keep_alive: KeepAlive::none(), + error_state: std::sync::atomic::AtomicU32::new(0), }); - device.bind_to_thread()?; - Ok(device) + context.bind_to_thread()?; + Ok(context) } /// Wraps externally-owned CUDA handles without taking ownership. @@ -162,7 +202,7 @@ impl Device { /// /// The caller must ensure: /// - `cu_ctx` points to a valid retained `CUcontext` for `cu_device` - /// - The handles outlive the returned `Device` **and everything derived + /// - The handles outlive the returned `Context` **and everything derived /// from it**. Streams from [`new_stream`](Self::new_stream) hold the /// device alive and, because the device is borrowed, are never parked in /// the process-wide stream pool: each is synchronized and destroyed @@ -170,12 +210,13 @@ impl Device { /// therefore still be valid when the last such stream drops. /// - No concurrent destruction of the handles pub unsafe fn borrow_raw(cu_ctx: *mut c_void, cu_device: c_int, ordinal: usize) -> Arc { - Arc::new(Device { + Arc::new(Context { cu_device: cu_device as cuda_bindings::CUdevice, cu_ctx: cu_ctx as cuda_bindings::CUcontext, ordinal, owned: false, _keep_alive: KeepAlive::none(), + error_state: std::sync::atomic::AtomicU32::new(0), }) } @@ -184,8 +225,8 @@ impl Device { /// /// Same as [`borrow_raw`](Self::borrow_raw), but the liveness obligation is /// discharged by construction: `owner` is whatever owns the context (a - /// cudarc device, a torch context handle, ...), and holding it here - /// guarantees the handles stay valid as long as this `Device` — or anything + /// cudarc context, a torch context handle, ...), and holding it here + /// guarantees the handles stay valid as long as this `Context` — or anything /// derived from it — lives. Only the point-in-time validity of the handles /// remains a caller assertion. /// @@ -200,12 +241,13 @@ impl Device { ordinal: usize, owner: Arc, ) -> Arc { - Arc::new(Device { + Arc::new(Context { cu_device: cu_device as cuda_bindings::CUdevice, cu_ctx: cu_ctx as cuda_bindings::CUcontext, ordinal, owned: false, _keep_alive: KeepAlive::owner(owner), + error_state: std::sync::atomic::AtomicU32::new(0), }) } @@ -216,7 +258,7 @@ impl Device { } /// Returns the raw `CUdevice` handle for a given ordinal without - /// creating a full `Device` (no context retained). Rejects an ordinal + /// creating a full `Context` (no context retained). Rejects an ordinal /// that does not fit `c_int` like [`new`](Self::new) does. pub fn raw_device(ordinal: usize) -> Result { let cu_ordinal = ordinal_to_c_int(ordinal)?; @@ -229,7 +271,7 @@ impl Device { self.ordinal } - /// Get the name of this device. + /// Get the name of this context. pub fn name(&self) -> Result { device::get_name(self.cu_device) } @@ -246,6 +288,7 @@ impl Device { /// Binds this context to the calling thread if not already current. pub fn bind_to_thread(&self) -> Result<(), DriverError> { + self.check_err()?; if match ctx::get_current()? { Some(curr_ctx) => curr_ctx != self.cu_ctx, None => true, @@ -257,18 +300,17 @@ impl Device { /// Blocks until all work on this device's context is complete. /// - /// # Safety - /// The caller must ensure this device's context is current on the - /// calling thread (via [`bind_to_thread`](Device::bind_to_thread)). - pub unsafe fn synchronize(&self) -> Result<(), DriverError> { + /// Binds this context to the calling thread before waiting. + pub fn synchronize(&self) -> Result<(), DriverError> { + self.bind_to_thread()?; ctx::synchronize() } - /// Creates a new non-blocking CUDA stream on this device. + /// Creates a new non-blocking CUDA stream on this context. /// /// On an owned device the handle may be one parked by an earlier stream's /// drop (see [`Stream`]). On a borrowed device it is always freshly - /// created: the pool is keyed by ordinal alone and holds handles from the + /// created: the pool is keyed by context identity and holds handles from the /// primary contexts this crate retains, which need not be the context the /// external owner handed to [`borrow_raw`](Self::borrow_raw). pub fn new_stream(self: &Arc) -> Result, DriverError> { @@ -277,7 +319,7 @@ impl Device { stream_pool() .lock() .unwrap_or_else(|poisoned| poisoned.into_inner()) - .get_mut(&self.ordinal) + .get_mut(&(self.cu_ctx as usize)) .and_then(Vec::pop) } else { None @@ -288,7 +330,7 @@ impl Device { }; Ok(Arc::new(Stream { cu_stream, - device: self.clone(), + context: self.clone(), owned: true, _keep_alive: KeepAlive::none(), })) @@ -306,7 +348,7 @@ impl Device { }?; Ok(Arc::new(Module { cu_module, - device: self.clone(), + context: self.clone(), owned: true, })) } @@ -320,7 +362,7 @@ impl Device { let cu_module = { module::load(filename) }?; Ok(Arc::new(Module { cu_module, - device: self.clone(), + context: self.clone(), owned: true, })) } @@ -364,12 +406,12 @@ impl Device { let cu_module = unsafe { module::load_data(image.as_ptr().cast()) }?; Ok(Arc::new(Module { cu_module, - device: self.clone(), + context: self.clone(), owned: true, })) } - /// Creates a new memory pool on this device. + /// Creates a new memory pool on this context. /// /// The returned pool is owned — it will be destroyed when the last `Arc` /// is dropped. Pair with [`MemPool::set_release_threshold`] to control @@ -384,21 +426,21 @@ impl Device { let cu_pool = unsafe { pool::create(&props) }?; Ok(Arc::new(MemPool { cu_pool, - device: self.clone(), + context: self.clone(), owned: true, })) } - /// Returns the driver-owned default memory pool for this device. + /// Returns the driver-owned default memory pool for this context. /// /// The returned wrapper is **not owned** — dropping it does not destroy the - /// default pool, which is shared across all users of the device. + /// default pool, which is shared across all users of the context. pub fn default_mem_pool(self: &Arc) -> Result, DriverError> { self.bind_to_thread()?; let cu_pool = unsafe { pool::get_default(self.cu_device) }?; Ok(Arc::new(MemPool { cu_pool, - device: self.clone(), + context: self.clone(), owned: false, })) } @@ -406,17 +448,17 @@ impl Device { /// A CUDA memory pool handle. /// -/// Can be either **owned** (created via [`Device::new_mem_pool`], destroyed on -/// drop) or **borrowed** (created via [`Device::default_mem_pool`], does NOT +/// Can be either **owned** (created via [`Context::new_mem_pool`], destroyed on +/// drop) or **borrowed** (created via [`Context::default_mem_pool`], does NOT /// destroy on drop). /// /// Used by async tensor allocation via `cuMemAllocFromPoolAsync` when a pool -/// is registered via `cuda_async::device_context::set_device_pool`. +/// is registered via `cuda_async::device_device::set_device_pool`. #[derive(Debug)] pub struct MemPool { pub(crate) cu_pool: cuda_bindings::CUmemoryPool, - pub(crate) device: Arc, - owned: bool, + pub(crate) context: Arc, + pub(crate) owned: bool, } unsafe impl Send for MemPool {} @@ -427,7 +469,7 @@ impl Drop for MemPool { if !self.owned { return; } - let _ = self.device.bind_to_thread(); + let _ = self.context.bind_to_thread(); let _ = unsafe { pool::destroy(self.cu_pool) }; } } @@ -438,9 +480,9 @@ impl MemPool { self.cu_pool } - /// Returns a reference to the parent device. - pub fn device(&self) -> &Arc { - &self.device + /// Returns a reference to the parent context. + pub fn context(&self) -> &Arc { + &self.context } /// Sets the release threshold for this pool. @@ -449,7 +491,7 @@ impl MemPool { /// below this threshold. Use `u64::MAX` to prevent the OS from reclaiming /// pool memory (useful for inference workloads with stable memory footprints). pub fn set_release_threshold(&self, threshold: u64) -> Result<(), DriverError> { - self.device.bind_to_thread()?; + self.context.bind_to_thread()?; unsafe { pool::set_release_threshold(self.cu_pool, threshold) } } @@ -460,7 +502,7 @@ impl MemPool { /// a synchronously consistent reading. For stable values, sync the streams /// that allocate from this pool first. pub fn mem_stats(&self) -> Result { - self.device.bind_to_thread()?; + self.context.bind_to_thread()?; unsafe { Ok(PoolMemStats { used_current: pool::get_attribute_u64( @@ -485,7 +527,7 @@ impl MemPool { /// Resets `used_high` to the current `used_current`. pub fn reset_used_high(&self) -> Result<(), DriverError> { - self.device.bind_to_thread()?; + self.context.bind_to_thread()?; unsafe { pool::reset_high_watermark( self.cu_pool, @@ -496,7 +538,7 @@ impl MemPool { /// Resets `reserved_high` to the current `reserved_current`. pub fn reset_reserved_high(&self) -> Result<(), DriverError> { - self.device.bind_to_thread()?; + self.context.bind_to_thread()?; unsafe { pool::reset_high_watermark( self.cu_pool, @@ -523,41 +565,32 @@ pub struct PoolMemStats { /// A CUDA stream handle. /// -/// Can be **owned** (created via [`Device::new_stream`]), **borrowed** (created +/// Can be **owned** (created via [`Context::new_stream`]), **borrowed** (created /// via [`Stream::borrow_raw`], does NOT destroy on drop), or **foreign** /// (created via [`Stream::borrow_with_owner`], holds a liveness token so the /// external owner outlives it). /// -/// Dropping an owned stream blocks in `cuStreamSynchronize` until the work -/// enqueued on it has drained. What happens to the handle next depends on the -/// device it was created on: -/// -/// - On an **owned** device the handle is *not* destroyed: it is parked in a -/// process-wide, per-ordinal pool and handed out again by the next -/// [`Device::new_stream`] on that ordinal (see `stream_pool` for why). The -/// last owned `Device` for the ordinal discards the pool entry, and the -/// primary-context release reclaims the handles. -/// - On a **borrowed** device ([`Device::borrow_raw`] / -/// [`Device::borrow_with_owner`]) the handle is destroyed, under the -/// teardown lock. It must never enter the pool: the pool is keyed by -/// ordinal only, so an owned `Device` created later for the same ordinal -/// would pop a handle belonging to a context the external owner may already -/// have destroyed. +/// Drop returns without waiting for queued GPU work. An event-backed retirement +/// queue retains the context and foreign owner until completion. Idle default +/// priority streams on owned contexts enter a pool keyed by CUDA context +/// identity; streams on borrowed contexts and priority streams are destroyed +/// after completion. Completion errors retain resources rather than reuse a +/// handle that may still be active. #[derive(Debug, PartialEq, Eq)] pub struct Stream { pub(crate) cu_stream: cuda_bindings::CUstream, - pub(crate) device: Arc, - owned: bool, - _keep_alive: KeepAlive, + pub(crate) context: Arc, + pub(crate) owned: bool, + pub(crate) _keep_alive: KeepAlive, } -/// Per-device pool of idle stream handles (all created `NonBlocking` by -/// [`Device::new_stream`]). `cuStreamDestroy` racing concurrent driver +/// Per-context pool of idle stream handles (all created `NonBlocking` by +/// [`Context::new_stream`]). `cuStreamDestroy` racing concurrent driver /// activity from other threads segfaults inside libcuda (reproducible in /// parallel test runs; a leak-streams experiment ran 10/10 clean where /// destroy-paths crashed ~half the runs), so owned streams are never /// destroyed: drops return the handle here, `new_stream` reuses it, and the -/// last `Device` drop for an ordinal discards the pooled handles — the +/// last `Context` drop for an ordinal discards the pooled handles — the /// primary-context release reclaims them. fn stream_pool() -> &'static std::sync::Mutex>> { static POOL: std::sync::OnceLock< @@ -590,8 +623,8 @@ unsafe impl Sync for Stream {} /// early is safe). An event is bound to its device at construction; /// recording it on a stream of another device is rejected. pub struct Event { - cu_event: cuda_bindings::CUevent, - device: Arc, + pub(crate) cu_event: cuda_bindings::CUevent, + pub(crate) context: Arc, } unsafe impl Send for Event {} @@ -602,20 +635,21 @@ impl Event { /// /// Errors with `CUDA_ERROR_INVALID_VALUE` if the stream belongs to a /// different device than the one this event was created on. - pub fn record(&self, stream: &Arc) -> Result<(), DriverError> { - if stream.device().ordinal() != self.device.ordinal() { + pub fn record(&self, stream: &Stream) -> Result<(), DriverError> { + if stream.context().as_ref() != self.context.as_ref() { return Err(DriverError( cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE, )); } - // Safety: both handles are valid by construction (RAII wrappers), - // and the same-device check above pins them to one context. + self.context.bind_to_thread()?; + // SAFETY: the handles have equal context identity and that context is current. unsafe { crate::cudarc_shim::event::record(self.cu_event, stream.cu_stream()) } } /// Blocks the calling thread until this event has completed. pub fn synchronize(&self) -> Result<(), DriverError> { - // Safety: the handle is valid by construction. + self.context.bind_to_thread()?; + // SAFETY: the handle is valid and its context is current. unsafe { crate::cudarc_shim::event::synchronize(self.cu_event) } } @@ -624,7 +658,8 @@ impl Event { /// (or the event was never recorded), `Ok(false)` while it is still in /// flight. Any other driver result is returned as the error. pub fn query(&self) -> Result { - // Safety: the handle is valid by construction. + self.context.bind_to_thread()?; + // SAFETY: the handle is valid and its context is current. match unsafe { crate::cudarc_shim::event::query(self.cu_event) } { Ok(()) => Ok(true), Err(DriverError(cuda_bindings::cudaError_enum_CUDA_ERROR_NOT_READY)) => Ok(false), @@ -640,27 +675,34 @@ impl Event { /// call [`synchronize`](Self::synchronize) on it first, or the driver /// reports not-ready. pub fn elapsed_time(&self, end: &Event) -> Result { - // Safety: both handles are valid by construction. + if self.context.as_ref() != end.context.as_ref() { + return Err(DriverError( + cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_CONTEXT, + )); + } + self.context.bind_to_thread()?; + // SAFETY: both handles belong to the current context. unsafe { crate::cudarc_shim::event::elapsed(self.cu_event, end.cu_event) } } } impl Drop for Event { fn drop(&mut self) { + self.context.record_err(self.context.bind_to_thread()); // Safety: owned handle; the driver defers destruction while in use. let _ = unsafe { crate::cudarc_shim::event::destroy(self.cu_event) }; } } -impl Device { - /// Creates a timing-enabled event on this device. +impl Context { + /// Creates a timing-enabled event on this context. pub fn new_event(self: &Arc) -> Result { self.bind_to_thread()?; let cu_event = crate::cudarc_shim::event::create(cuda_bindings::CUevent_flags_enum_CU_EVENT_DEFAULT)?; Ok(Event { cu_event, - device: self.clone(), + context: self.clone(), }) } @@ -681,31 +723,58 @@ impl Device { } } -impl Drop for Stream { +// Retains both context and foreign liveness tokens while a stream drains. +struct RetiredStream { + handle: usize, + context: Arc, + owned: bool, + reusable: bool, + _keep_alive: KeepAlive, +} + +impl Drop for RetiredStream { fn drop(&mut self) { - if !self.owned || self.cu_stream.is_null() { + if !self.owned || self.handle == 0 { return; } - let _ = self.device.bind_to_thread(); - if self.device.owned { - // Never destroyed (see `stream_pool`): drain, then return the - // handle for reuse by the next `new_stream` on this device. - let _ = unsafe { stream::synchronize(self.cu_stream) }; + if self.reusable { stream_pool() .lock() - .unwrap_or_else(|poisoned| poisoned.into_inner()) - .entry(self.device.ordinal) + .unwrap_or_else(|e| e.into_inner()) + .entry(self.context.cu_ctx() as usize) .or_default() - .push(self.cu_stream as usize); + .push(self.handle); } else { - // Borrowed device: the pool is keyed by ordinal only, so parking - // this handle would let an owned `Device` created later for the - // same ordinal pop a stream from a context the external owner may - // by then have destroyed (reproduced as a segfault). Destroy it - // instead, serialized with the other destructive driver calls. let _guard = teardown_lock(); - let _ = unsafe { stream::synchronize(self.cu_stream) }; - let _ = unsafe { stream::destroy(self.cu_stream) }; + if self.context.bind_to_thread().is_err() { + // Preserve the context rather than releasing a resource whose + // teardown the driver could not perform safely. + std::mem::forget(self.context.clone()); + return; + } + self.context + .record_err(unsafe { stream::destroy(self.handle as cuda_bindings::CUstream) }); + } + } +} + +impl Drop for Stream { + fn drop(&mut self) { + let retired = RetiredStream { + handle: self.cu_stream as usize, + context: self.context.clone(), + owned: self.owned, + // Preserve priority semantics: only default-priority streams enter + // the pool used by Context::new_stream. + reusable: self.context.owned && self.priority().ok() == Some(0), + _keep_alive: self._keep_alive.clone(), + }; + match self.query() { + Ok(true) => drop(retired), + Ok(false) => { + let _ = crate::completion::retain_until_complete(retired, self); + } + Err(_) => std::mem::forget(retired), } } } @@ -714,7 +783,7 @@ impl Stream { /// Wraps an externally-owned CUDA stream without taking ownership. /// /// `cu_stream` is the raw `CUstream` opaque pointer. See - /// [`Device::borrow_raw`] for why this is a `*mut c_void` rather than a + /// [`Context::borrow_raw`] for why this is a `*mut c_void` rather than a /// `cuda_bindings::CUstream` typedef. /// /// # Safety @@ -723,10 +792,10 @@ impl Stream { /// - `cu_stream` points to a valid CUDA stream on `device` /// - The stream outlives the returned `Stream` /// - No concurrent destruction of the stream - pub unsafe fn borrow_raw(cu_stream: *mut c_void, device: &Arc) -> Arc { + pub unsafe fn borrow_raw(cu_stream: *mut c_void, context: &Arc) -> Arc { Arc::new(Stream { cu_stream: cu_stream as cuda_bindings::CUstream, - device: device.clone(), + context: context.clone(), owned: false, _keep_alive: KeepAlive::none(), }) @@ -747,12 +816,12 @@ impl Stream { /// that stream (i.e. `owner` really is what keeps it alive). pub unsafe fn borrow_with_owner( cu_stream: *mut c_void, - device: &Arc, + context: &Arc, owner: Arc, ) -> Arc { Arc::new(Stream { cu_stream: cu_stream as cuda_bindings::CUstream, - device: device.clone(), + context: context.clone(), owned: false, _keep_alive: KeepAlive::owner(owner), }) @@ -763,28 +832,26 @@ impl Stream { self.cu_stream } - /// Returns a reference to the parent device. - pub fn device(&self) -> &Arc { - &self.device + /// Returns a reference to the parent context. + pub fn context(&self) -> &Arc { + &self.context } /// Blocks until all work on this stream is complete. /// - /// # Safety - /// The caller must ensure the parent device's context is current on - /// the calling thread. - pub unsafe fn synchronize(&self) -> Result<(), DriverError> { - stream::synchronize(self.cu_stream) + /// Binds the parent context to the calling thread before submitting. + pub fn synchronize(&self) -> Result<(), DriverError> { + self.context.bind_to_thread()?; + unsafe { stream::synchronize(self.cu_stream) } } /// Queries stream completion without blocking: `Ok(true)` when all prior /// work has completed, `Ok(false)` when work is still in flight. /// - /// # Safety - /// The caller must ensure the parent device's context is current on - /// the calling thread. - pub unsafe fn query(&self) -> Result { - stream::query(self.cu_stream) + /// Binds the parent context to the calling thread before submitting. + pub fn query(&self) -> Result { + self.context.bind_to_thread()?; + unsafe { stream::query(self.cu_stream) } } /// Makes all work subsequently enqueued on this stream wait until @@ -795,13 +862,13 @@ impl Stream { /// Errors with `CUDA_ERROR_INVALID_VALUE` if the event belongs to a /// different device than this stream. pub fn wait_event(&self, event: &Event) -> Result<(), DriverError> { - if event.device.ordinal() != self.device.ordinal() { + if event.context.as_ref() != self.context.as_ref() { return Err(DriverError( cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE, )); } - // Safety: both handles are valid by construction (RAII wrappers), - // and the same-device check above pins them to one context. + self.context.bind_to_thread()?; + // SAFETY: the handles have equal context identity and that context is current. unsafe { stream::wait_event( self.cu_stream, @@ -831,13 +898,12 @@ impl Stream { /// callback fires; on `Err` the driver never invokes the callback, so the /// box is reclaimed here and the closure's captures are dropped. /// - /// # Safety - /// The caller must ensure the parent device's context is current on - /// the calling thread. - pub unsafe fn launch_host_function( + /// Binds the parent context to the calling thread before submitting. + pub fn launch_host_function( &self, host_func: F, ) -> Result<(), DriverError> { + self.context.bind_to_thread()?; Self::enqueue_boxed(host_func, |func, arg| unsafe { stream::launch_host_function(self.cu_stream, func, arg) }) @@ -849,14 +915,13 @@ impl Stream { /// rules: no CUDA calls inside `host_func`, panics are caught and /// discarded, and a refused launch reclaims the boxed closure. /// - /// # Safety - /// The caller must ensure the parent device's context is current on - /// the calling thread. - pub unsafe fn launch_host_function_with_sync_mode( + /// Binds the parent context to the calling thread before submitting. + pub fn launch_host_function_with_sync_mode( &self, host_func: F, sync_mode: ::core::ffi::c_uint, ) -> Result<(), DriverError> { + self.context.bind_to_thread()?; Self::enqueue_boxed(host_func, |func, arg| unsafe { stream::launch_host_function_v2(self.cu_stream, func, arg, sync_mode) }) @@ -922,14 +987,14 @@ impl Stream { /// A loaded CUDA module (PTX/cubin). /// -/// Can be either **owned** (created via [`Device::load_module_from_ptx_src`] -/// / [`Device::load_module_from_file`], unloads on drop) or **borrowed** +/// Can be either **owned** (created via [`Context::load_module_from_ptx_src`] +/// / [`Context::load_module_from_file`], unloads on drop) or **borrowed** /// (created via [`Module::borrow_raw`], does NOT unload on drop). #[derive(Debug)] pub struct Module { pub(crate) cu_module: cuda_bindings::CUmodule, - pub(crate) device: Arc, - owned: bool, + pub(crate) context: Arc, + pub(crate) owned: bool, } unsafe impl Send for Module {} @@ -941,7 +1006,7 @@ impl Drop for Module { return; } let _guard = teardown_lock(); - let _ = self.device.bind_to_thread(); + let _ = self.context.bind_to_thread(); let _ = unsafe { module::unload(self.cu_module) }; } } @@ -950,7 +1015,7 @@ impl Module { /// Wraps an externally-owned CUDA module without taking ownership. /// /// `cu_module` is the raw `CUmodule` opaque pointer. See - /// [`Device::borrow_raw`] for why this is a `*mut c_void`. + /// [`Context::borrow_raw`] for why this is a `*mut c_void`. /// /// # Safety /// @@ -958,10 +1023,10 @@ impl Module { /// - `cu_module` points to a valid module loaded on `device` /// - The module outlives the returned `Module` /// - No concurrent unload of the module - pub unsafe fn borrow_raw(cu_module: *mut c_void, device: &Arc) -> Arc { + pub unsafe fn borrow_raw(cu_module: *mut c_void, context: &Arc) -> Arc { Arc::new(Module { cu_module: cu_module as cuda_bindings::CUmodule, - device: device.clone(), + context: context.clone(), owned: false, }) } @@ -973,6 +1038,7 @@ impl Module { /// Looks up a device function by name within this module. pub fn load_function(self: &Arc, fn_name: &str) -> Result { + self.context.bind_to_thread()?; let cu_function = unsafe { module::get_function(self.cu_module, fn_name) }?; Ok(Function { cu_function, @@ -1104,33 +1170,33 @@ mod tests { } fn has_gpu() -> bool { - Device::device_count().map(|n| n > 0).unwrap_or(false) + Context::device_count().map(|n| n > 0).unwrap_or(false) } - /// The stream pool is process-wide and keyed by ordinal, so the tests that - /// assert on its contents for ordinal 0 must not overlap: a concurrent - /// test's `new_stream` pops, and its `Device` drop discards the whole + /// The stream pool is process-wide and keyed by context, so the tests that + /// assert on the primary context pool must not overlap: a concurrent + /// test's `new_stream` pops, and its `Context` drop discards the whole /// entry. Nothing else in this test binary touches the pool. fn pool_tests_lock() -> std::sync::MutexGuard<'static, ()> { static LOCK: std::sync::Mutex<()> = std::sync::Mutex::new(()); LOCK.lock().unwrap_or_else(|poisoned| poisoned.into_inner()) } - /// Snapshot of the parked handles for `ordinal`. - fn pooled_handles(ordinal: usize) -> Vec { + /// Snapshot of parked handles for this CUDA context. + fn pooled_handles(context: &Context) -> Vec { stream_pool() .lock() .unwrap_or_else(|poisoned| poisoned.into_inner()) - .get(&ordinal) + .get(&(context.cu_ctx() as usize)) .cloned() .unwrap_or_default() } - fn borrow(owner: &Arc) -> Arc { + fn borrow(owner: &Arc) -> Arc { // SAFETY: `owner` retains the primary context for the duration of // every test below, and nothing destroys it concurrently. unsafe { - Device::borrow_raw( + Context::borrow_raw( owner.cu_ctx().cast(), owner.cu_device() as c_int, owner.ordinal(), @@ -1142,11 +1208,11 @@ mod tests { fn ordinals_beyond_c_int_are_rejected_not_truncated() { let invalid = DriverError(cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_DEVICE); // Checked before `cuInit`, so this holds with or without a driver. - assert_eq!(Device::new(usize::MAX).err(), Some(invalid)); - assert_eq!(Device::raw_device(usize::MAX).err(), Some(invalid)); + assert_eq!(Context::new(usize::MAX).err(), Some(invalid)); + assert_eq!(Context::raw_device(usize::MAX).err(), Some(invalid)); // The first ordinal past `c_int` would have wrapped to device 0. let wraps_to_zero = (c_int::MAX as usize) + 1 + (c_int::MAX as usize) + 1; - assert_eq!(Device::new(wraps_to_zero).err(), Some(invalid)); + assert_eq!(Context::new(wraps_to_zero).err(), Some(invalid)); assert_eq!(ordinal_to_c_int(0), Ok(0)); assert_eq!(ordinal_to_c_int(c_int::MAX as usize), Ok(c_int::MAX)); } @@ -1157,12 +1223,12 @@ mod tests { return; } let _serialized = pool_tests_lock(); - let owner = Device::new(0).unwrap(); + let owner = Context::new(0).unwrap(); let first = owner.new_stream().unwrap(); let handle = first.cu_stream() as usize; drop(first); assert!( - pooled_handles(0).contains(&handle), + pooled_handles(&owner).contains(&handle), "an owned device's stream is parked, not destroyed" ); let second = owner.new_stream().unwrap(); @@ -1175,14 +1241,14 @@ mod tests { return; } let _serialized = pool_tests_lock(); - let owner = Device::new(0).unwrap(); + let owner = Context::new(0).unwrap(); // Seed the pool with a handle from the owned device so that a // borrowed `new_stream` that consulted the pool would be caught. let parked = { let seed = owner.new_stream().unwrap(); seed.cu_stream() as usize }; - assert!(pooled_handles(0).contains(&parked)); + assert!(pooled_handles(&owner).contains(&parked)); let borrowed = borrow(&owner); let stream = borrowed.new_stream().unwrap(); @@ -1193,18 +1259,18 @@ mod tests { belong to contexts this crate retained, not to the borrowed one" ); assert!( - pooled_handles(0).contains(&parked), + pooled_handles(&owner).contains(&parked), "and leaves the pool as it was" ); - unsafe { stream.synchronize() }.unwrap(); + stream.synchronize().unwrap(); drop(stream); assert!( - !pooled_handles(0).contains(&handle), + !pooled_handles(&owner).contains(&handle), "a borrowed device's stream must be destroyed on drop, never parked \ - where a later owned Device for this ordinal could pop it" + where a later owned Context for this ordinal could pop it" ); - assert!(pooled_handles(0).contains(&parked)); + assert!(pooled_handles(&owner).contains(&parked)); } #[test] diff --git a/cuda-core/src/simt/event.rs b/cuda-core/src/simt/event.rs deleted file mode 100644 index 0ef390afa3..0000000000 --- a/cuda-core/src/simt/event.rs +++ /dev/null @@ -1,144 +0,0 @@ -/* - * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -//! CUDA event management (RAII, timing, synchronization). -//! -//! A [`CudaEvent`] wraps a `CUevent` handle and ties its lifetime to its -//! parent [`CudaContext`]. Events are the fundamental synchronization -//! primitive between CUDA streams: record an event on one stream, then wait -//! on it from another to establish ordering. -//! -//! # Timing -//! -//! By default, events are created with `CU_EVENT_DISABLE_TIMING` for lower -//! overhead. Pass `Some(CU_EVENT_DEFAULT)` to -//! [`CudaContext::new_event`] or [`CudaStream::record_event`] if you -//! need [`elapsed_ms`](CudaEvent::elapsed_ms). - -use crate::error::{DriverError, IntoResult}; -use crate::simt::context::CudaContext; -use crate::simt::stream::CudaStream; -use std::mem::MaybeUninit; -use std::sync::Arc; - -/// An RAII wrapper around a `CUevent` handle. -/// -/// Holds an `Arc` to ensure the context outlives the event. -/// Destroyed automatically via `cuEventDestroy` on [`Drop`]. -#[derive(Debug)] -pub struct CudaEvent { - /// Raw CUDA event handle. - pub(crate) cu_event: cuda_bindings::CUevent, - /// Owning context. Kept alive for the lifetime of this event. - pub(crate) ctx: Arc, -} - -/// # Safety -/// -/// `CUevent` handles are not thread-local. The CUDA driver permits recording -/// and waiting on events from any thread, provided the owning context is bound. -unsafe impl Send for CudaEvent {} -/// See [`Send`] impl. -unsafe impl Sync for CudaEvent {} - -/// Destroys the underlying `CUevent` on drop. -/// -/// Binds the context to the current thread first (required by -/// `cuEventDestroy`). Errors are recorded on the context rather than -/// panicking. -impl Drop for CudaEvent { - fn drop(&mut self) { - self.ctx.record_err(self.ctx.bind_to_thread()); - self.ctx - .record_err(unsafe { cuda_bindings::cuEventDestroy_v2(self.cu_event).result() }); - } -} - -impl CudaContext { - /// Creates a new CUDA event in this context. - /// - /// `flags` defaults to `CU_EVENT_DISABLE_TIMING` when `None`. Use - /// `Some(CU_EVENT_DEFAULT)` to enable timing queries via - /// [`CudaEvent::elapsed_ms`]. - pub fn new_event( - self: &Arc, - flags: Option, - ) -> Result { - let flags = flags.unwrap_or(cuda_bindings::CUevent_flags_enum_CU_EVENT_DISABLE_TIMING); - self.bind_to_thread()?; - let mut cu_event = MaybeUninit::uninit(); - let cu_event = unsafe { - cuda_bindings::cuEventCreate(cu_event.as_mut_ptr(), flags).result()?; - cu_event.assume_init() - }; - Ok(CudaEvent { - cu_event, - ctx: self.clone(), - }) - } -} - -impl CudaEvent { - /// Returns the raw `CUevent` handle. - pub fn cu_event(&self) -> cuda_bindings::CUevent { - self.cu_event - } - - /// Returns the parent [`CudaContext`]. - pub fn context(&self) -> &Arc { - &self.ctx - } - - /// Records this event on `stream`. - /// - /// The event captures the point in the stream's work queue at the time of - /// the call. A subsequent [`CudaStream::wait`] on this event will block - /// the waiting stream until all work prior to the record point completes. - pub fn record(&self, stream: &CudaStream) -> Result<(), DriverError> { - self.ctx.bind_to_thread()?; - unsafe { cuda_bindings::cuEventRecord(self.cu_event, stream.cu_stream()).result() } - } - - /// Blocks the calling thread until this event has been recorded and all - /// preceding stream work has completed. - pub fn synchronize(&self) -> Result<(), DriverError> { - self.ctx.bind_to_thread()?; - unsafe { cuda_bindings::cuEventSynchronize(self.cu_event).result() } - } - - /// Returns `true` when all work captured by this event has completed, - /// `false` when it is still in flight. Never blocks. - /// - /// Wraps `cuEventQuery`, mapping `CUDA_SUCCESS` to `Ok(true)` and - /// `CUDA_ERROR_NOT_READY` to `Ok(false)`. Any other code is a real - /// driver error. - pub fn query(&self) -> Result { - self.ctx.bind_to_thread()?; - match unsafe { cuda_bindings::cuEventQuery(self.cu_event) } { - cuda_bindings::cudaError_enum_CUDA_SUCCESS => Ok(true), - cuda_bindings::cudaError_enum_CUDA_ERROR_NOT_READY => Ok(false), - err => Err(DriverError(err)), - } - } - - /// Returns the elapsed time in milliseconds between `self` (start) and - /// `end`. - /// - /// Both events are synchronized before querying. Both events must have - /// been created **without** `CU_EVENT_DISABLE_TIMING`; otherwise the - /// driver returns `CUDA_ERROR_INVALID_HANDLE`. - /// - /// `self` must have been recorded before `end` in wall-clock time. - pub fn elapsed_ms(&self, end: &Self) -> Result { - self.synchronize()?; - end.synchronize()?; - let mut ms: f32 = 0.0; - unsafe { - cuda_bindings::cu_event_elapsed_time(&mut ms as *mut _, self.cu_event, end.cu_event) - .result()?; - } - Ok(ms) - } -} diff --git a/cuda-core/src/simt/stream.rs b/cuda-core/src/simt/stream.rs deleted file mode 100644 index 8a97417cc4..0000000000 --- a/cuda-core/src/simt/stream.rs +++ /dev/null @@ -1,252 +0,0 @@ -/* - * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -//! CUDA stream management (RAII, host callbacks, fork/join). -//! -//! A [`CudaStream`] wraps a `CUstream` handle and ties its lifetime to its -//! parent [`CudaContext`]. Streams are created via -//! [`CudaContext::new_stream`] or [`CudaStream::fork`] and destroyed -//! automatically on [`Drop`]. -//! -//! # Ordering model -//! -//! Operations enqueued on the same stream execute in FIFO order. Operations on -//! different streams may overlap. Use [`fork`](CudaStream::fork) / -//! [`join`](CudaStream::join) or explicit events ([`record_event`](CudaStream::record_event), -//! [`wait`](CudaStream::wait)) to establish cross-stream ordering. -//! -//! # Host callbacks -//! -//! [`launch_host_function`](CudaStream::launch_host_function) enqueues a -//! host-side closure that the driver invokes after all preceding stream work -//! completes. This is the primary bridge between CUDA stream completion and -//! Rust `async` futures. - -use crate::error::{DriverError, IntoResult}; -use crate::simt::context::CudaContext; -use crate::simt::event::CudaEvent; -use std::ffi::c_void; -use std::mem::MaybeUninit; -use std::sync::atomic::Ordering; -use std::sync::Arc; - -/// An RAII wrapper around a `CUstream` handle. -/// -/// Holds an `Arc` to ensure the context outlives the stream. -/// A null `cu_stream` represents the per-context default stream (stream 0). -#[derive(Debug, PartialEq, Eq)] -pub struct CudaStream { - /// Raw CUDA stream handle. Null for the default stream. - pub(crate) cu_stream: cuda_bindings::CUstream, - /// Owning context. Kept alive for the lifetime of this stream. - pub(crate) ctx: Arc, -} - -/// # Safety -/// -/// `CUstream` handles are not thread-local. The CUDA driver permits enqueuing -/// work onto a stream from any thread, provided the owning context is bound -/// (which [`bind_to_thread`](CudaContext::bind_to_thread) ensures). -unsafe impl Send for CudaStream {} -/// See [`Send`] impl. -unsafe impl Sync for CudaStream {} - -/// Destroys the underlying `CUstream` on drop and decrements the context's -/// live stream count. -/// -/// The default stream (null handle) is never destroyed. Errors during -/// teardown are recorded on the context rather than panicking. -impl Drop for CudaStream { - fn drop(&mut self) { - self.ctx.record_err(self.ctx.bind_to_thread()); - if !self.cu_stream.is_null() { - self.ctx.num_streams.fetch_sub(1, Ordering::Relaxed); - self.ctx - .record_err(unsafe { cuda_bindings::cuStreamDestroy_v2(self.cu_stream).result() }); - } - } -} - -impl CudaStream { - /// Returns the raw `CUstream` handle (null for the default stream). - pub fn cu_stream(&self) -> cuda_bindings::CUstream { - self.cu_stream - } - - /// Returns the parent [`CudaContext`]. - pub fn context(&self) -> &Arc { - &self.ctx - } - - /// Returns the priority this stream actually runs at. - /// - /// Wraps `cuStreamGetPriority`. This is the value to read after - /// [`CudaContext::new_stream_with_priority`](crate::simt::context::CudaContext::new_stream_with_priority), - /// which clamps an out-of-range request to the device's range without - /// reporting it. Lower numbers are higher priorities. The default stream - /// and any stream from [`CudaContext::new_stream`](crate::simt::context::CudaContext::new_stream) - /// report `0`. - pub fn priority(&self) -> Result { - self.ctx.bind_to_thread()?; - let mut priority = MaybeUninit::uninit(); - unsafe { - cuda_bindings::cuStreamGetPriority(self.cu_stream, priority.as_mut_ptr()).result()?; - Ok(priority.assume_init()) - } - } - - /// Blocks the calling thread until all work enqueued on this stream - /// completes. - pub fn synchronize(&self) -> Result<(), DriverError> { - self.ctx.bind_to_thread()?; - unsafe { cuda_bindings::cuStreamSynchronize(self.cu_stream) }.result() - } - - /// Returns `true` when every operation enqueued on this stream has - /// completed, `false` while any is still in flight. Never blocks. - /// - /// Wraps `cuStreamQuery`, mapping `CUDA_SUCCESS` to `Ok(true)` and - /// `CUDA_ERROR_NOT_READY` to `Ok(false)`, as - /// [`CudaEvent::query`](crate::simt::event::CudaEvent::query) does for - /// `cuEventQuery`. Any other code is a real driver error. - /// - /// This is the completion half of the async bridge that - /// [`launch_host_function`](Self::launch_host_function) opens: a - /// `Future::poll` implementation needs to ask whether work has finished - /// without parking the executor's thread, which - /// [`synchronize`](Self::synchronize) cannot answer. - /// - /// A sticky error from earlier work on the stream surfaces here rather - /// than as `Ok(false)`, the same way it would from - /// [`synchronize`](Self::synchronize). - /// - /// On the default stream this reports the completion of every blocking - /// stream in the context, since the default stream orders against them - /// all. - pub fn query(&self) -> Result { - self.ctx.bind_to_thread()?; - match unsafe { cuda_bindings::cuStreamQuery(self.cu_stream) } { - cuda_bindings::cudaError_enum_CUDA_SUCCESS => Ok(true), - cuda_bindings::cudaError_enum_CUDA_ERROR_NOT_READY => Ok(false), - err => Err(DriverError(err)), - } - } - - /// Creates a new non-blocking stream that waits on all prior work in - /// `self` before executing its own. - /// - /// Semantically equivalent to creating a new stream and calling - /// [`join`](Self::join) on it with `self`, establishing a fork point - /// in the stream DAG. - pub fn fork(&self) -> Result, DriverError> { - self.ctx.bind_to_thread()?; - self.ctx.num_streams.fetch_add(1, Ordering::Relaxed); - let mut cu_stream = MaybeUninit::uninit(); - let cu_stream = unsafe { - cuda_bindings::cuStreamCreate( - cu_stream.as_mut_ptr(), - cuda_bindings::CUstream_flags_enum_CU_STREAM_NON_BLOCKING, - ) - .result()?; - cu_stream.assume_init() - }; - let stream = Arc::new(CudaStream { - cu_stream, - ctx: self.ctx.clone(), - }); - stream.join(self)?; - Ok(stream) - } - - /// Makes `self` wait on all prior work in `other`. - /// - /// Records an event on `other` and enqueues a wait on `self`. This is the - /// join side of the fork/join pattern: after this call, work enqueued on - /// `self` is guaranteed to observe all side effects of prior work on - /// `other`. - pub fn join(&self, other: &CudaStream) -> Result<(), DriverError> { - self.wait(&other.record_event(None)?) - } - - /// Records an event on this stream and returns it. - /// - /// `flags` defaults to `CU_EVENT_DISABLE_TIMING` when `None`, which is - /// cheaper than a timing-enabled event. Pass - /// `Some(CU_EVENT_DEFAULT)` if you need [`CudaEvent::elapsed_ms`]. - pub fn record_event( - &self, - flags: Option, - ) -> Result { - let event = self.ctx.new_event(flags)?; - event.record(self)?; - Ok(event) - } - - /// Enqueues a wait on `event` into this stream. - /// - /// All work enqueued on `self` after this call will not begin until - /// `event` has been recorded (i.e., all prior work on the stream that - /// recorded `event` has completed). - pub fn wait(&self, event: &CudaEvent) -> Result<(), DriverError> { - self.ctx.bind_to_thread()?; - unsafe { - cuda_bindings::cuStreamWaitEvent( - self.cu_stream, - event.cu_event(), - cuda_bindings::CUevent_wait_flags_enum_CU_EVENT_WAIT_DEFAULT, - ) - .result() - } - } - - /// Enqueues a host-side callback that the driver invokes after all prior - /// work on this stream completes. - /// - /// This is the bridge between CUDA stream ordering and Rust async: wrap a - /// `oneshot::Sender::send` or `Waker::wake` in `host_func` to unblock a - /// future when GPU work finishes. - /// - /// `host_func` is boxed, leaked into a raw pointer, and passed as user - /// data to `cuLaunchHostFunc`. The driver calls - /// `callback_wrapper` on a driver-internal - /// thread, which reclaims the box and invokes the closure. - /// - /// Panics inside the closure are caught and discarded to prevent unwinding - /// across the FFI boundary. - pub fn launch_host_function( - &self, - host_func: F, - ) -> Result<(), DriverError> { - let boxed = Box::new(host_func); - unsafe { - cuda_bindings::cuLaunchHostFunc( - self.cu_stream, - Some(Self::callback_wrapper::), - Box::into_raw(boxed) as *mut c_void, - ) - .result() - } - } - - /// `extern "C"` trampoline invoked by the CUDA driver on a driver-internal - /// thread when a host function callback fires. - /// - /// Reconstructs the `Box` from the raw pointer and calls the closure. - /// Panics are caught with `catch_unwind` to prevent unwinding across the - /// C ABI boundary. - /// - /// # Safety - /// - /// - `callback` must be a pointer produced by `Box::into_raw(Box::new(f))` - /// where `f: F`. - /// - Must be called exactly once per enqueued callback (double-free - /// otherwise). - unsafe extern "C" fn callback_wrapper(callback: *mut c_void) { - let _ = std::panic::catch_unwind(|| { - let callback: Box = unsafe { Box::from_raw(callback as *mut F) }; - callback(); - }); - } -} diff --git a/cuda-core/src/simt/vmm.rs b/cuda-core/src/simt/vmm.rs deleted file mode 100644 index 4784fc6099..0000000000 --- a/cuda-core/src/simt/vmm.rs +++ /dev/null @@ -1,519 +0,0 @@ -/* - * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -//! CUDA Virtual Memory Management (VMM) API wrappers. -//! -//! The VMM APIs provide fine-grained control over physical memory allocation, -//! virtual address reservation, and mapping. Unlike `cuMemAlloc`, which bundles -//! all three steps, VMM separates them so that physical memory from one device -//! can be mapped into another device's virtual address space -- the foundation -//! for P2P symmetric heaps. -//! -//! All handle types are RAII: `PhysicalAllocation` releases via `cuMemRelease`, -//! `VirtualReservation` frees via `cuMemAddressFree`, and `Mapping` unmaps -//! via `cuMemUnmap`. Drop order matters -- mappings must be dropped before the -//! physical allocation or virtual reservation they reference. -//! -//! The module also wraps CUDA's multicast objects (`cuMulticast*`, CUDA -//! 12.1+): `MulticastObject` (compiled out on pre-12.1 toolkits, see the -//! build script probe) builds an NVLink SHARP (NVLS) team whose -//! mapped VA ranges respond to device-side `multimem.*` instructions with -//! switch-side reduction and broadcast across every bound GPU. See -//! `tests/vmm_multicast.rs` and the `nvls_all_reduce` example. - -use crate::error::{DriverError, IntoResult}; -use cuda_bindings::CUdeviceptr; -use std::mem::MaybeUninit; - -/// Sets the device ordinal on a `CUmemLocation_st`. -/// -/// CUDA 13.2 wraps `id` in an anonymous union (`__bindgen_anon_1.id`), while -/// older versions expose it directly. The memory layout is identical -- `id` is -/// always at offset 4 (after the `type_` enum). Writing via pointer works across -/// both layouts. -unsafe fn set_mem_location_device( - loc: &mut cuda_bindings::CUmemLocation_st, - device: cuda_bindings::CUdevice, -) { - loc.type_ = cuda_bindings::CUmemLocationType_enum_CU_MEM_LOCATION_TYPE_DEVICE; - unsafe { - let base = loc as *mut _ as *mut u8; - (base.add(4) as *mut i32).write(device); - } -} - -/// A physical memory allocation created by `cuMemCreate`. -/// -/// Owns the underlying `CUmemGenericAllocationHandle`. The allocation lives on -/// a specific device and can be mapped into any device's VA space that has been -/// granted access. -/// -/// Dropping this releases the physical memory. All `Mapping`s referencing this -/// allocation must be dropped first. -pub struct PhysicalAllocation { - handle: cuda_bindings::CUmemGenericAllocationHandle, - size: usize, - device: cuda_bindings::CUdevice, -} - -impl PhysicalAllocation { - /// Allocates `size` bytes of physical memory on `device`. - /// - /// `size` must be a multiple of the allocation granularity for the device - /// (query via [`allocation_granularity`]). - pub fn new(device: cuda_bindings::CUdevice, size: usize) -> Result { - let mut prop: cuda_bindings::CUmemAllocationProp_st = unsafe { std::mem::zeroed() }; - prop.type_ = cuda_bindings::CUmemAllocationType_enum_CU_MEM_ALLOCATION_TYPE_PINNED; - unsafe { set_mem_location_device(&mut prop.location, device) }; - - let mut handle = MaybeUninit::uninit(); - unsafe { - cuda_bindings::cuMemCreate(handle.as_mut_ptr(), size, &prop, 0).result()?; - Ok(Self { - handle: handle.assume_init(), - size, - device, - }) - } - } - - /// Returns the raw `CUmemGenericAllocationHandle`. - pub fn handle(&self) -> cuda_bindings::CUmemGenericAllocationHandle { - self.handle - } - - /// Returns the allocation size in bytes. - pub fn size(&self) -> usize { - self.size - } - - /// Returns the device this allocation lives on. - pub fn device(&self) -> cuda_bindings::CUdevice { - self.device - } -} - -impl Drop for PhysicalAllocation { - fn drop(&mut self) { - unsafe { - let _ = cuda_bindings::cuMemRelease(self.handle).result(); - } - } -} - -/// A reserved virtual address range created by `cuMemAddressReserve`. -/// -/// Owns a contiguous VA range `[base, base + size)`. Physical memory can be -/// mapped into this range via [`Mapping::new`]. The range is freed on drop. -/// -/// All `Mapping`s within this range must be dropped before the reservation. -pub struct VirtualReservation { - base: CUdeviceptr, - size: usize, -} - -impl VirtualReservation { - /// Reserves `size` bytes of virtual address space. - /// - /// The driver chooses the base address. `size` must be a multiple of the - /// allocation granularity. `alignment` can be 0 to let the driver choose. - pub fn new(size: usize, alignment: usize) -> Result { - let mut base = MaybeUninit::uninit(); - unsafe { - cuda_bindings::cuMemAddressReserve(base.as_mut_ptr(), size, alignment, 0, 0) - .result()?; - Ok(Self { - base: base.assume_init(), - size, - }) - } - } - - /// Returns the base device pointer of the reserved range. - pub fn base(&self) -> CUdeviceptr { - self.base - } - - /// Returns the reserved size in bytes. - pub fn size(&self) -> usize { - self.size - } -} - -impl Drop for VirtualReservation { - fn drop(&mut self) { - unsafe { - let _ = cuda_bindings::cuMemAddressFree(self.base, self.size).result(); - } - } -} - -/// A mapping of physical memory into a virtual address range. -/// -/// Created by [`Mapping::new`], which calls `cuMemMap` to bind a -/// `PhysicalAllocation` (or a portion of it) to a region within a -/// `VirtualReservation`. Dropped via `cuMemUnmap`. -pub struct Mapping { - va: CUdeviceptr, - size: usize, -} - -impl Mapping { - /// Maps `size` bytes of `phys` at `offset` into virtual address `va`. - /// - /// `va` must lie within a `VirtualReservation`. `offset` is the byte - /// offset into the physical allocation (typically 0 for full mappings). - /// `size` must be a multiple of the allocation granularity. - pub fn new( - va: CUdeviceptr, - size: usize, - phys: &PhysicalAllocation, - offset: usize, - ) -> Result { - unsafe { - cuda_bindings::cuMemMap(va, size, offset, phys.handle(), 0).result()?; - } - Ok(Self { va, size }) - } - - /// Maps `size` bytes of a multicast object at `offset` into virtual - /// address `va`. - /// - /// The resulting VA is a *multicast* view: `multimem.*` PTX instructions - /// issued against it operate on every copy bound to the object (see - /// [`MulticastObject`]). Like [`Mapping::new`], the mapping is not - /// accessible until [`set_access`] grants the accessing device permission. - /// - /// All devices must have been added to the multicast object (via - /// [`MulticastObject::add_device`]) before mapping it. - #[cfg(cuda_has_multicast)] - pub fn new_multicast( - va: CUdeviceptr, - size: usize, - multicast: &MulticastObject, - offset: usize, - ) -> Result { - unsafe { - cuda_bindings::cuMemMap(va, size, offset, multicast.handle(), 0).result()?; - } - Ok(Self { va, size }) - } - - /// Returns the virtual address this mapping occupies. - pub fn va(&self) -> CUdeviceptr { - self.va - } - - /// Returns the mapped size in bytes. - pub fn size(&self) -> usize { - self.size - } -} - -impl Drop for Mapping { - fn drop(&mut self) { - unsafe { - let _ = cuda_bindings::cuMemUnmap(self.va, self.size).result(); - } - } -} - -/// Sets read/write access on a virtual address range for one or more devices. -/// -/// After calling `cuMemMap`, the mapping is not yet accessible. This function -/// grants the specified `devices` read/write permission on the range -/// `[va, va + size)`. -/// -/// Typically called once after all mappings within a reservation are established. -pub fn set_access( - va: CUdeviceptr, - size: usize, - devices: &[cuda_bindings::CUdevice], -) -> Result<(), DriverError> { - let descs: Vec = devices - .iter() - .map(|&dev| { - let mut desc: cuda_bindings::CUmemAccessDesc_st = unsafe { std::mem::zeroed() }; - unsafe { set_mem_location_device(&mut desc.location, dev) }; - desc.flags = cuda_bindings::CUmemAccess_flags_enum_CU_MEM_ACCESS_FLAGS_PROT_READWRITE; - desc - }) - .collect(); - - unsafe { cuda_bindings::cuMemSetAccess(va, size, descs.as_ptr(), descs.len()) }.result() -} - -/// Queries the minimum allocation granularity for VMM operations on `device`. -/// -/// All sizes passed to [`PhysicalAllocation::new`], [`VirtualReservation::new`], -/// and [`Mapping::new`] must be multiples of this value. -pub fn allocation_granularity(device: cuda_bindings::CUdevice) -> Result { - let mut prop: cuda_bindings::CUmemAllocationProp_st = unsafe { std::mem::zeroed() }; - prop.type_ = cuda_bindings::CUmemAllocationType_enum_CU_MEM_ALLOCATION_TYPE_PINNED; - unsafe { set_mem_location_device(&mut prop.location, device) }; - - let mut granularity = MaybeUninit::uninit(); - unsafe { - cuda_bindings::cuMemGetAllocationGranularity( - granularity.as_mut_ptr(), - &prop, - cuda_bindings::CUmemAllocationGranularity_flags_enum_CU_MEM_ALLOC_GRANULARITY_MINIMUM, - ) - .result()?; - Ok(granularity.assume_init()) - } -} - -/// Rounds `size` up to the nearest multiple of `granularity`. -pub fn align_size(size: usize, granularity: usize) -> usize { - (size + granularity - 1) & !(granularity - 1) -} - -/// Granularity flavor for [`multicast_granularity`]. -#[cfg(cuda_has_multicast)] -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum MulticastGranularity { - /// Minimum required granularity for multicast sizes and offsets. - Minimum, - /// Recommended granularity for best performance. - Recommended, -} - -#[cfg(cuda_has_multicast)] -impl MulticastGranularity { - fn to_flag(self) -> cuda_bindings::CUmulticastGranularity_flags { - match self { - MulticastGranularity::Minimum => { - cuda_bindings::CUmulticastGranularity_flags_enum_CU_MULTICAST_GRANULARITY_MINIMUM - } - MulticastGranularity::Recommended => { - cuda_bindings::CUmulticastGranularity_flags_enum_CU_MULTICAST_GRANULARITY_RECOMMENDED - } - } - } -} - -/// Fills a `CUmulticastObjectProp_st` for a single-process team of -/// `num_devices` GPUs binding up to `size` bytes each. -/// -/// `handleTypes` is left at 0: the object cannot be exported to other -/// processes. Multi-process teams (exporting the handle over a POSIX file -/// descriptor or fabric handle) are out of scope for these wrappers. -#[cfg(cuda_has_multicast)] -fn multicast_prop(num_devices: u32, size: usize) -> cuda_bindings::CUmulticastObjectProp_st { - let mut prop: cuda_bindings::CUmulticastObjectProp_st = unsafe { std::mem::zeroed() }; - prop.numDevices = num_devices; - prop.size = size; - prop -} - -/// Returns whether `device` supports switch multicast and reduction -/// operations (`CU_DEVICE_ATTRIBUTE_MULTICAST_SUPPORTED`). -/// -/// Multicast requires an NVLink-switch-connected system (e.g. HGX/DGX -/// H100 or B200) and CUDA 12.1+. -#[cfg(cuda_has_multicast)] -pub fn multicast_supported(device: cuda_bindings::CUdevice) -> Result { - let mut value = MaybeUninit::uninit(); - let status = unsafe { - cuda_bindings::cuDeviceGetAttribute( - value.as_mut_ptr(), - cuda_bindings::CUdevice_attribute_enum_CU_DEVICE_ATTRIBUTE_MULTICAST_SUPPORTED, - device, - ) - }; - // Drivers older than CUDA 12.1 do not know this attribute and answer - // CUDA_ERROR_INVALID_VALUE. That means "no multicast on this system", - // not a failure, so callers can probe-and-skip uniformly. - if status == cuda_bindings::cudaError_enum_CUDA_ERROR_INVALID_VALUE { - return Ok(false); - } - status.result()?; - Ok(unsafe { value.assume_init() } != 0) -} - -/// Built against a pre-12.1 CUDA toolkit whose headers lack the multicast -/// API: no device can be used for multicast through these wrappers. -#[cfg(not(cuda_has_multicast))] -pub fn multicast_supported(_device: cuda_bindings::CUdevice) -> Result { - Ok(false) -} - -/// Queries the multicast size/offset granularity for a team of -/// `num_devices` GPUs binding `size` bytes each. -/// -/// All sizes and offsets passed to [`MulticastObject::new`] and -/// [`MulticastObject::bind_mem`] must be multiples of the -/// [`MulticastGranularity::Minimum`] value; use -/// [`MulticastGranularity::Recommended`] for best performance. -#[cfg(cuda_has_multicast)] -pub fn multicast_granularity( - num_devices: u32, - size: usize, - granularity: MulticastGranularity, -) -> Result { - let prop = multicast_prop(num_devices, size); - let mut value = MaybeUninit::uninit(); - unsafe { - cuda_bindings::cuMulticastGetGranularity(value.as_mut_ptr(), &prop, granularity.to_flag()) - .result()?; - Ok(value.assume_init()) - } -} - -/// A multicast object created by `cuMulticastCreate`: one virtual "team" -/// handle backed by up to one physical allocation per participating GPU. -/// -/// Once every team device is added ([`add_device`](Self::add_device)) and has -/// bound physical memory ([`bind_mem`](Self::bind_mem)), the object can be -/// mapped into each device's VA space with [`Mapping::new_multicast`]. -/// Device-side `multimem.ld_reduce` / `multimem.st` / `multimem.red` -/// instructions issued against that mapping operate on *all* bound copies at -/// once -- the NVSwitch performs the reduction/broadcast in the fabric -/// (NVLink SHARP, the mechanism behind NCCL's NVLS algorithm). -/// -/// Lifecycle rules, in order: -/// 1. [`MulticastObject::new`] with the final team size. -/// 2. [`add_device`](Self::add_device) exactly `num_devices` times. -/// 3. [`bind_mem`](Self::bind_mem) per device (after ALL devices are added). -/// 4. [`Mapping::new_multicast`] + [`set_access`] per device. -/// -/// Teardown reverses it: mappings first, then bindings ([`MulticastBinding`]), -/// then this object, then the physical allocations. -/// -/// Dropping releases the handle via `cuMemRelease` (the documented release -/// path for multicast objects). -#[cfg(cuda_has_multicast)] -pub struct MulticastObject { - handle: cuda_bindings::CUmemGenericAllocationHandle, - size: usize, - num_devices: u32, -} - -#[cfg(cuda_has_multicast)] -impl MulticastObject { - /// Creates a multicast object for a team of `num_devices` GPUs binding - /// up to `size` bytes each. - /// - /// `size` must be a multiple of the minimum multicast granularity - /// (query via [`multicast_granularity`]). The object is single-process - /// only (no exportable handle types). - pub fn new(num_devices: u32, size: usize) -> Result { - let prop = multicast_prop(num_devices, size); - let mut handle = MaybeUninit::uninit(); - unsafe { - cuda_bindings::cuMulticastCreate(handle.as_mut_ptr(), &prop).result()?; - Ok(Self { - handle: handle.assume_init(), - size, - num_devices, - }) - } - } - - /// Adds `device` to the multicast team. - /// - /// Must be called exactly [`num_devices`](Self::num_devices) times, once - /// per device, before any memory is bound. - pub fn add_device(&self, device: cuda_bindings::CUdevice) -> Result<(), DriverError> { - unsafe { cuda_bindings::cuMulticastAddDevice(self.handle, device).result() } - } - - /// Binds `size` bytes of `phys` (starting at `mem_offset`) to this - /// multicast object at `mc_offset`. - /// - /// The bound device is taken from the physical allocation. All offsets - /// and `size` must be multiples of the minimum multicast granularity, - /// and every team device must already have been added. A CUDA context - /// for the bound device must be current. - /// - /// The returned [`MulticastBinding`] unbinds on drop; it must be dropped - /// before this object and before `phys`. - pub fn bind_mem( - &self, - mc_offset: usize, - phys: &PhysicalAllocation, - mem_offset: usize, - size: usize, - ) -> Result { - unsafe { - cuda_bindings::cuMulticastBindMem( - self.handle, - mc_offset, - phys.handle(), - mem_offset, - size, - 0, - ) - .result()?; - } - Ok(MulticastBinding { - mc_handle: self.handle, - device: phys.device(), - mc_offset, - size, - }) - } - - /// Returns the raw multicast `CUmemGenericAllocationHandle`. - pub fn handle(&self) -> cuda_bindings::CUmemGenericAllocationHandle { - self.handle - } - - /// Returns the per-device bind capacity in bytes. - pub fn size(&self) -> usize { - self.size - } - - /// Returns the team size this object was created for. - pub fn num_devices(&self) -> u32 { - self.num_devices - } -} - -#[cfg(cuda_has_multicast)] -impl Drop for MulticastObject { - fn drop(&mut self) { - unsafe { - let _ = cuda_bindings::cuMemRelease(self.handle).result(); - } - } -} - -/// One device's physical memory bound into a [`MulticastObject`]. -/// -/// Created by [`MulticastObject::bind_mem`]; unbinds via `cuMulticastUnbind` -/// on drop. Must be dropped before the multicast object and before the -/// physical allocation it binds. -#[cfg(cuda_has_multicast)] -pub struct MulticastBinding { - mc_handle: cuda_bindings::CUmemGenericAllocationHandle, - device: cuda_bindings::CUdevice, - mc_offset: usize, - size: usize, -} - -#[cfg(cuda_has_multicast)] -impl MulticastBinding { - /// Returns the device whose memory is bound. - pub fn device(&self) -> cuda_bindings::CUdevice { - self.device - } -} - -#[cfg(cuda_has_multicast)] -impl Drop for MulticastBinding { - fn drop(&mut self) { - unsafe { - let _ = cuda_bindings::cuMulticastUnbind( - self.mc_handle, - self.device, - self.mc_offset, - self.size, - ) - .result(); - } - } -} diff --git a/cuda-core/src/stream.rs b/cuda-core/src/stream.rs new file mode 100644 index 0000000000..ee807b775f --- /dev/null +++ b/cuda-core/src/stream.rs @@ -0,0 +1,70 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +//! Stream ordering and priority helpers. + +pub use crate::runtime::{Stream, Stream as CudaStream}; +use crate::{DriverError, Event, IntoResult}; +use std::{mem::MaybeUninit, sync::Arc}; + +impl Stream { + /// Returns the priority this stream actually runs at. + /// + /// Wraps `cuStreamGetPriority`. This is the value to read after + /// [`Context::new_stream_with_priority`](crate::context::Context::new_stream_with_priority), + /// which clamps an out-of-range request to the device's range without + /// reporting it. Lower numbers are higher priorities. The default stream + /// and any stream from [`Context::new_stream`](crate::context::Context::new_stream) + /// report `0`. + pub fn priority(&self) -> Result { + self.context.bind_to_thread()?; + let mut priority = MaybeUninit::uninit(); + unsafe { + cuda_bindings::cuStreamGetPriority(self.cu_stream, priority.as_mut_ptr()).result()?; + Ok(priority.assume_init()) + } + } + /// Creates a new non-blocking stream that waits on all prior work in + /// `self` before executing its own. + /// + /// Semantically equivalent to creating a new stream and calling + /// [`join`](Self::join) on it with `self`, establishing a fork point + /// in the stream DAG. + pub fn fork(&self) -> Result, DriverError> { + let stream = self.context.new_stream()?; + stream.join(self)?; + Ok(stream) + } + /// Makes `self` wait on all prior work in `other`. + /// + /// Records an event on `other` and enqueues a wait on `self`. This is the + /// join side of the fork/join pattern: after this call, work enqueued on + /// `self` is guaranteed to observe all side effects of prior work on + /// `other`. + pub fn join(&self, other: &Stream) -> Result<(), DriverError> { + self.wait(&other.record_event(None)?) + } + /// Records an event on this stream and returns it. + /// + /// `flags` defaults to `CU_EVENT_DISABLE_TIMING` when `None`, which is + /// cheaper than a timing-enabled event. Pass + /// `Some(CU_EVENT_DEFAULT)` if you need [`Event::elapsed_ms`]. + pub fn record_event( + &self, + flags: Option, + ) -> Result { + let event = self.context.new_event_with_flags(flags)?; + event.record(self)?; + Ok(event) + } + /// Enqueues a wait on `event` into this stream. + /// + /// All work enqueued on `self` after this call will not begin until + /// `event` has been recorded (i.e., all prior work on the stream that + /// recorded `event` has completed). + pub fn wait(&self, event: &Event) -> Result<(), DriverError> { + self.wait_event(event) + } +} diff --git a/cuda-core/tests/borrow_raw.rs b/cuda-core/tests/borrow_raw.rs index b2713d4b3e..6834d9bc3e 100644 --- a/cuda-core/tests/borrow_raw.rs +++ b/cuda-core/tests/borrow_raw.rs @@ -3,13 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -//! Verifies the ownership contract of `Device::borrow_raw` and +//! Verifies the ownership contract of `Context::borrow_raw` and //! `Stream::borrow_raw`: dropping a borrowed wrapper must not release the //! primary context or destroy the stream, so the source handles keep //! working afterward. use core::ffi::{c_int, c_void}; -use cuda_core::{Device, Function, Module, Stream}; +use cuda_core::{Context, Function, Module, Stream}; const NOOP_PTX: &str = "\ .version 7.0 @@ -23,12 +23,12 @@ const NOOP_PTX: &str = "\ "; fn has_gpu() -> bool { - Device::device_count().map(|n| n > 0).unwrap_or(false) + Context::device_count().map(|n| n > 0).unwrap_or(false) } -fn borrow_device(src: &Device) -> std::sync::Arc { +fn borrow_device(src: &Context) -> std::sync::Arc { unsafe { - Device::borrow_raw( + Context::borrow_raw( src.cu_ctx() as *mut c_void, src.cu_device() as c_int, src.ordinal(), @@ -36,7 +36,7 @@ fn borrow_device(src: &Device) -> std::sync::Arc { } } -fn borrow_stream(src: &Stream, dev: &std::sync::Arc) -> std::sync::Arc { +fn borrow_stream(src: &Stream, dev: &std::sync::Arc) -> std::sync::Arc { unsafe { Stream::borrow_raw(src.cu_stream() as *mut c_void, dev) } } @@ -45,16 +45,16 @@ fn borrowed_drop_leaves_source_device_usable() { if !has_gpu() { return; } - let source = Device::new(0).unwrap(); + let source = Context::new(0).unwrap(); { let borrowed = borrow_device(&source); borrowed.bind_to_thread().unwrap(); - unsafe { borrowed.synchronize() }.unwrap(); + borrowed.synchronize().unwrap(); } source.bind_to_thread().unwrap(); - unsafe { source.synchronize() }.unwrap(); + source.synchronize().unwrap(); let _stream = source.new_stream().unwrap(); } @@ -63,16 +63,16 @@ fn borrowed_drop_leaves_source_stream_usable() { if !has_gpu() { return; } - let source_dev = Device::new(0).unwrap(); + let source_dev = Context::new(0).unwrap(); let source_stream = source_dev.new_stream().unwrap(); { let borrowed_dev = borrow_device(&source_dev); let borrowed_stream = borrow_stream(&source_stream, &borrowed_dev); - unsafe { borrowed_stream.synchronize() }.unwrap(); + borrowed_stream.synchronize().unwrap(); } - unsafe { source_stream.synchronize() }.unwrap(); + source_stream.synchronize().unwrap(); } #[test] @@ -80,7 +80,7 @@ fn borrowed_module_drop_does_not_unload() { if !has_gpu() { return; } - let source_dev = Device::new(0).unwrap(); + let source_dev = Context::new(0).unwrap(); let source_module = source_dev.load_module_from_ptx_src(NOOP_PTX).unwrap(); { @@ -100,7 +100,7 @@ fn borrowed_function_uses_parent_module() { if !has_gpu() { return; } - let source_dev = Device::new(0).unwrap(); + let source_dev = Context::new(0).unwrap(); let source_module = source_dev.load_module_from_ptx_src(NOOP_PTX).unwrap(); let source_fn = source_module.load_function("noop").unwrap(); @@ -116,15 +116,15 @@ fn many_borrowed_drops_do_not_invalidate_source() { if !has_gpu() { return; } - let source_dev = Device::new(0).unwrap(); + let source_dev = Context::new(0).unwrap(); let source_stream = source_dev.new_stream().unwrap(); for _ in 0..8 { let borrowed_dev = borrow_device(&source_dev); let borrowed_stream = borrow_stream(&source_stream, &borrowed_dev); - unsafe { borrowed_stream.synchronize() }.unwrap(); + borrowed_stream.synchronize().unwrap(); } - unsafe { source_stream.synchronize() }.unwrap(); + source_stream.synchronize().unwrap(); let _another = source_dev.new_stream().unwrap(); } diff --git a/cuda-core/tests/simt_context_limits.rs b/cuda-core/tests/context_limits.rs similarity index 100% rename from cuda-core/tests/simt_context_limits.rs rename to cuda-core/tests/context_limits.rs diff --git a/cuda-core/tests/simt_context_sync_policy.rs b/cuda-core/tests/context_sync_policy.rs similarity index 100% rename from cuda-core/tests/simt_context_sync_policy.rs rename to cuda-core/tests/context_sync_policy.rs diff --git a/cuda-core/tests/simt_device_buffer.rs b/cuda-core/tests/device_buffer.rs similarity index 93% rename from cuda-core/tests/simt_device_buffer.rs rename to cuda-core/tests/device_buffer.rs index 6ebf9ace90..1e2ec8b925 100644 --- a/cuda-core/tests/simt_device_buffer.rs +++ b/cuda-core/tests/device_buffer.rs @@ -187,6 +187,10 @@ fn owned_wrapper_roundtrip_preserves_allocation_and_stream() { assert_eq!(words.to_host_vec(&stream).unwrap(), values); drop(words); stream.synchronize().unwrap(); + let deadline = std::time::Instant::now() + Duration::from_secs(5); + while Arc::strong_count(&stream) != stream_refs - 1 && std::time::Instant::now() < deadline { + std::thread::sleep(Duration::from_millis(5)); + } assert_eq!(Arc::strong_count(&stream), stream_refs - 1); } @@ -267,7 +271,7 @@ fn device_buffer_async_compat_methods_roundtrip() { } #[test] -fn async_allocation_ordinary_drop_waits_for_cross_stream_work() { +fn async_allocation_ordinary_drop_retires_cross_stream_work() { let _gated_test_guard = lock_gated_test(); let ctx = CudaContext::new(0).expect("failed to create CUDA context"); let allocation_stream = ctx @@ -295,13 +299,12 @@ fn async_allocation_ordinary_drop_waits_for_cross_stream_work() { .send(()) .expect("failed to send drop completion"); }); - finish_gated_worker( - "ordinary async buffer drop", - release_gate, - started_rx, - completion_rx, - drop_thread, - ); + started_rx.recv_timeout(COMPLETION_TIMEOUT).unwrap(); + let completed = completion_rx.recv_timeout(COMPLETION_TIMEOUT); + // Release the gate even on failure so the test cannot strand the driver. + release_gate.send(()).unwrap(); + drop_thread.join().unwrap(); + completed.expect("ordinary buffer drop must not wait for GPU work"); ctx.synchronize().expect("context cleanup failed"); } @@ -408,11 +411,19 @@ fn drop_async_bind_error_preserves_ordinary_cleanup() { ctx.bind_to_thread() .expect("ordinary drop should leave the context usable"); - assert_eq!( - unsafe { cuda_bindings::cuMemGetAddressRange_v2(&mut base, &mut size, ptr) }, - cuda_bindings::cudaError_enum_CUDA_ERROR_NOT_FOUND, - "ordinary drop must reclaim the still-armed allocation" - ); + let deadline = std::time::Instant::now() + Duration::from_secs(5); + loop { + let status = unsafe { cuda_bindings::cuMemGetAddressRange_v2(&mut base, &mut size, ptr) }; + if status == cuda_bindings::cudaError_enum_CUDA_ERROR_NOT_FOUND { + break; + } + assert_eq!(status, cuda_bindings::cudaError_enum_CUDA_SUCCESS); + assert!( + std::time::Instant::now() < deadline, + "retirement failed to reclaim the allocation" + ); + std::thread::sleep(Duration::from_millis(5)); + } } #[test] @@ -458,11 +469,11 @@ fn copy_from_host_with_pinned_source_allows_source_reuse_after_return() { // Dangerous-path regression: a stream-ordered (`cuMemAllocAsync`) buffer that // is dropped *implicitly* while a copy is still in flight, with no explicit -// synchronization by the caller. Ordinary `Drop` synchronizes the context -// before enqueueing the free, so the in-flight copy cannot race deallocation. +// synchronization by the caller. Completion leases retain the allocation +// until the in-flight copy finishes, so it cannot race deallocation. // Run under `compute-sanitizer --tool memcheck` to catch a regression. #[test] -fn uninitialized_async_implicit_drop_waits_for_pending_work() { +fn uninitialized_async_implicit_drop_retains_pending_work() { let ctx = CudaContext::new(0).expect("failed to create CUDA context"); let stream = ctx.new_stream().expect("failed to create CUDA stream"); diff --git a/cuda-core/tests/simt_device_buffer_casts.rs b/cuda-core/tests/device_buffer_casts.rs similarity index 93% rename from cuda-core/tests/simt_device_buffer_casts.rs rename to cuda-core/tests/device_buffer_casts.rs index fed5848915..c2f80df130 100644 --- a/cuda-core/tests/simt_device_buffer_casts.rs +++ b/cuda-core/tests/device_buffer_casts.rs @@ -9,7 +9,7 @@ //! turn byte storage into a `DeviceBuffer`. These cases only need to //! compile or fail to compile; none touches a GPU. Regenerate the //! expectations with `TRYBUILD=overwrite cargo test -p cuda-core --test -//! simt_device_buffer_casts` after an intentional diagnostic change. +//! device_buffer_casts` after an intentional diagnostic change. #[test] fn device_buffer_cast_bounds() { diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr b/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr index 6701a8e469..bade663b28 100644 --- a/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr +++ b/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr @@ -16,7 +16,7 @@ error[E0277]: the trait bound `bool: AnyBitPattern` is not satisfied and $N others = note: required for `bool` to implement `AnyBitPattern` note: required by a bound in `DeviceBuffer::::cast_chunks` - --> src/simt/device_buffer.rs + --> src/device_buffer.rs | | pub fn cast_chunks(self) -> Result, Self> { | ^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::cast_chunks` diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr b/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr index 64b7a30ea1..ca875fc475 100644 --- a/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr +++ b/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr @@ -16,7 +16,7 @@ error[E0277]: the trait bound `bool: AnyBitPattern` is not satisfied and $N others = note: required for `bool` to implement `AnyBitPattern` note: required by a bound in `DeviceBuffer::::cast_elem` - --> src/simt/device_buffer.rs + --> src/device_buffer.rs | | pub fn cast_elem(self) -> DeviceBuffer { | ^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::cast_elem` diff --git a/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr index cdcbd14208..58cf4ebdef 100644 --- a/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr +++ b/cuda-core/tests/device_buffer_casts/fail_wrap_elem_bool.stderr @@ -10,7 +10,7 @@ help: the trait `DeviceRepr` is implemented for `Wrapping` | unsafe impl DeviceRepr for core::num::Wrapping {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: required by a bound in `DeviceBuffer::::wrap_elem` - --> src/simt/device_buffer.rs + --> src/device_buffer.rs | | pub fn wrap_elem>(self) -> DeviceBuffer { | ^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::wrap_elem` diff --git a/cuda-core/tests/simt_device_buffer_leaks.rs b/cuda-core/tests/device_buffer_leaks.rs similarity index 91% rename from cuda-core/tests/simt_device_buffer_leaks.rs rename to cuda-core/tests/device_buffer_leaks.rs index 2e51c654ea..f5e742070e 100644 --- a/cuda-core/tests/simt_device_buffer_leaks.rs +++ b/cuda-core/tests/device_buffer_leaks.rs @@ -22,6 +22,13 @@ use std::sync::Arc; use cuda_core::{CudaContext, DeviceBuffer}; +fn wait_for_retirement(ctx: &Arc, baseline: usize) { + let deadline = std::time::Instant::now() + std::time::Duration::from_secs(5); + while Arc::strong_count(ctx) != baseline && std::time::Instant::now() < deadline { + std::thread::sleep(std::time::Duration::from_millis(5)); + } +} + /// A live buffer must hold exactly one extra context strong count, and the /// count must return to baseline once the buffer drops. A construction /// helper that `mem::forget`s a context clone (as an arm/disarm pointer @@ -44,6 +51,7 @@ fn ctx_strong_count_returns_to_baseline_after_buffer_lifecycle() { drop(buf); } + wait_for_retirement(&ctx, baseline); assert_eq!( Arc::strong_count(&ctx), baseline, @@ -55,6 +63,7 @@ fn ctx_strong_count_returns_to_baseline_after_buffer_lifecycle() { drop(buf); } + wait_for_retirement(&ctx, baseline); assert_eq!( Arc::strong_count(&ctx), baseline, @@ -129,6 +138,7 @@ fn zero_length_construction_succeeds_for_both_constructors() { drop(zeroed); drop(from_host); + wait_for_retirement(&ctx, baseline); assert_eq!( Arc::strong_count(&ctx), baseline, diff --git a/cuda-core/tests/simt_device_copy_derive.rs b/cuda-core/tests/device_copy_derive.rs similarity index 100% rename from cuda-core/tests/simt_device_copy_derive.rs rename to cuda-core/tests/device_copy_derive.rs diff --git a/cuda-core/tests/simt_device_copy_impls.rs b/cuda-core/tests/device_copy_impls.rs similarity index 77% rename from cuda-core/tests/simt_device_copy_impls.rs rename to cuda-core/tests/device_copy_impls.rs index e3a3c1980b..68a17a70b6 100644 --- a/cuda-core/tests/simt_device_copy_impls.rs +++ b/cuda-core/tests/device_copy_impls.rs @@ -17,6 +17,16 @@ fn device_copy_supports_half_types() { assert_device_copy::(); } +#[test] +fn tile_storage_types_also_implement_device_copy() { + assert_device_copy::(); + assert_device_copy::(); + assert_device_copy::(); + assert_device_copy::(); + assert_device_copy::(); + assert_device_copy::(); +} + #[cfg(feature = "f16")] #[test] fn device_copy_supports_native_f16() { diff --git a/cuda-core/tests/simt_launch_contract_types.rs b/cuda-core/tests/launch_contract_types.rs similarity index 100% rename from cuda-core/tests/simt_launch_contract_types.rs rename to cuda-core/tests/launch_contract_types.rs diff --git a/cuda-core/tests/simt_vmm_multicast.rs b/cuda-core/tests/nvlink_multicast.rs similarity index 96% rename from cuda-core/tests/simt_vmm_multicast.rs rename to cuda-core/tests/nvlink_multicast.rs index a5716b9860..eb9220a4d3 100644 --- a/cuda-core/tests/simt_vmm_multicast.rs +++ b/cuda-core/tests/nvlink_multicast.rs @@ -20,8 +20,8 @@ //! (CUDA 12.1); see cuda-core's build script probe. #![cfg(cuda_has_multicast)] -use cuda_core::simt::context::CudaContext; -use cuda_core::simt::vmm; +use cuda_core::context::CudaContext; +use cuda_core::vmm; use cuda_core::IntoResult; use std::mem::MaybeUninit; @@ -115,7 +115,7 @@ fn multicast_two_gpu_team_roundtrip() { let byte_len = pattern.len() * std::mem::size_of::(); let stream0 = ctx0.default_stream(); unsafe { - cuda_core::simt::memory::memcpy_htod_async( + cuda_core::memory::memcpy_htod_async( mappings[0].0.base(), pattern.as_ptr(), byte_len, @@ -127,7 +127,7 @@ fn multicast_two_gpu_team_roundtrip() { let mut readback = vec![0u32; 256]; unsafe { - cuda_core::simt::memory::memcpy_dtoh_async( + cuda_core::memory::memcpy_dtoh_async( readback.as_mut_ptr(), mappings[0].0.base(), byte_len, diff --git a/cuda-core/tests/simt_pinned_host_buffer.rs b/cuda-core/tests/pinned_host_buffer.rs similarity index 100% rename from cuda-core/tests/simt_pinned_host_buffer.rs rename to cuda-core/tests/pinned_host_buffer.rs diff --git a/cuda-core/tests/shared_allocation.rs b/cuda-core/tests/shared_allocation.rs new file mode 100644 index 0000000000..1a54197412 --- /dev/null +++ b/cuda-core/tests/shared_allocation.rs @@ -0,0 +1,135 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +use cuda_core::{Context, DeviceBuffer, RawDeviceBuffer}; +use std::sync::{mpsc, Arc}; +use std::time::{Duration, Instant}; + +fn metadata(context: usize) -> RawDeviceBuffer { + // SAFETY: these fake handles are used only for bookkeeping; no CUDA API + // sees them and borrowed allocation/context destruction performs no calls. + unsafe { + RawDeviceBuffer::borrowed_from_raw_parts( + 0x1000, + 128, + Context::borrow_raw(context as *mut _, 0, 0), + ) + } +} + +#[test] +fn byte_views_share_extent_identity_and_access_exclusion() { + let raw = metadata(0x2000); + let view = raw.slice_bytes(16, 32).unwrap(); + assert_eq!(view.cu_deviceptr(), raw.cu_deviceptr() + 16); + assert_eq!(view.allocation_id(), raw.allocation_id()); + assert!(raw.slice_bytes(120, 9).is_err()); + assert!(raw.slice_bytes(usize::MAX, 1).is_err()); + assert!(!raw.is_unique()); + let read = raw.acquire_on_stream(1, false, false).unwrap(); + let second_read = view.acquire_on_stream(2, false, false).unwrap(); + assert!(view.acquire_on_stream(2, true, false).is_err()); + drop((read, second_read)); + let write = view.acquire_on_stream(2, true, false).unwrap(); + assert!(raw.acquire_on_stream(1, false, false).is_err()); + assert!(raw.acquire_on_stream(2, true, false).is_ok()); + drop(view); + assert!(raw.is_unique(), "completion leases are not user aliases"); + drop(write); +} + +#[test] +fn same_ordinal_does_not_mean_same_context() { + let raw = metadata(0x2000); + let other = metadata(0x3000); + assert_eq!(raw.device_id(), other.device_id()); + assert_ne!(raw.context(), other.context()); + // SAFETY: this fake borrowed stream is never submitted or destroyed: forget + // it after testing the context check, before Drop could query the driver. + let stream = unsafe { cuda_core::Stream::borrow_raw(0x4000 as *mut _, other.context()) }; + let result = raw.acquire(&stream, false, false); + std::mem::forget(stream); + assert!(result.is_err()); +} + +struct Gate(mpsc::Sender<()>); +impl Gate { + fn arm(stream: &cuda_core::Stream) -> Self { + let (tx, rx) = mpsc::channel(); + stream + .launch_host_function(move || { + let _ = rx.recv_timeout(Duration::from_secs(10)); + }) + .unwrap(); + Self(tx) + } +} +impl Drop for Gate { + fn drop(&mut self) { + let _ = self.0.send(()); + } +} + +#[test] +fn pending_copy_excludes_other_stream_and_outlives_dropped_buffer() { + let context = Context::new(0).unwrap(); + let stream = context.new_stream().unwrap(); + let other = context.new_stream().unwrap(); + let mut buffer = DeviceBuffer::from_host(&stream, &[7u32; 32]).unwrap(); + let storage = buffer.storage().clone(); + let gate = Gate::arm(&stream); + buffer.zero_async(&stream).unwrap(); + assert!(storage.acquire(&other, false, false).is_err()); + let before = Instant::now(); + drop(buffer); + assert!( + before.elapsed() < Duration::from_secs(2), + "buffer drop waited for GPU work" + ); + assert!(storage.acquire(&other, false, false).is_err()); + drop(gate); + stream.synchronize().unwrap(); + // SAFETY: the zero fill completed, u32 accepts every representation, and + // this test is the only remaining user of the allocation. + let buffer = unsafe { DeviceBuffer::::from_storage_copy(storage, 32).unwrap() }; + assert_eq!(buffer.to_host_vec(&other).unwrap(), vec![0; 32]); +} + +#[test] +fn stream_drop_is_nonblocking_and_holds_context_until_completion() { + let context = Context::new(0).unwrap(); + let stream = context.new_stream().unwrap(); + let gate = Gate::arm(&stream); + let weak = Arc::downgrade(&context); + drop(context); + let before = Instant::now(); + drop(stream); + assert!( + before.elapsed() < Duration::from_secs(2), + "stream drop waited for GPU work" + ); + assert!(weak.upgrade().is_some()); + drop(gate); + let deadline = Instant::now() + Duration::from_secs(5); + while weak.upgrade().is_some() && Instant::now() < deadline { + std::thread::sleep(Duration::from_millis(5)); + } + assert!( + weak.upgrade().is_none(), + "retirement leaked an idle stream/context" + ); +} + +#[test] +fn fresh_thread_allocation_binds_its_context() { + let context = Context::new(0).unwrap(); + let stream = context.new_stream().unwrap(); + std::thread::spawn(move || { + let buffer = DeviceBuffer::from_host(&stream, &[11u32, 29]).unwrap(); + assert_eq!(buffer.to_host_vec(&stream).unwrap(), [11, 29]); + }) + .join() + .unwrap(); +} diff --git a/cuda-core/tests/simt_stream_priority.rs b/cuda-core/tests/stream_priority.rs similarity index 100% rename from cuda-core/tests/simt_stream_priority.rs rename to cuda-core/tests/stream_priority.rs diff --git a/cuda-core/tests/simt_stream_query.rs b/cuda-core/tests/stream_query.rs similarity index 100% rename from cuda-core/tests/simt_stream_query.rs rename to cuda-core/tests/stream_query.rs diff --git a/cuda-core/tests/vmm.rs b/cuda-core/tests/vmm.rs index ac36a4d42c..b27c6333c8 100644 --- a/cuda-core/tests/vmm.rs +++ b/cuda-core/tests/vmm.rs @@ -13,7 +13,7 @@ //! //! Skips when no GPU is present. -use cuda_core::{vmm, Device, IntoResult}; +use cuda_core::{vmm, Context, IntoResult}; use std::mem::MaybeUninit; #[test] @@ -58,7 +58,7 @@ fn vmm_single_gpu_roundtrip() { return; } - let device = Device::new(0).expect("GPU 0 device"); + let device = Context::new(0).expect("GPU 0 device"); let cu_device = device.cu_device(); let granularity = vmm::allocation_granularity(cu_device).expect("allocation granularity query"); diff --git a/cuda-core/tests/vmm_multicast.rs b/cuda-core/tests/vmm_multicast.rs index 0c8cb398d5..29cbbc198b 100644 --- a/cuda-core/tests/vmm_multicast.rs +++ b/cuda-core/tests/vmm_multicast.rs @@ -17,7 +17,7 @@ //! //! Requires an NVLink-switch system (e.g. HGX H100/B200); skips elsewhere. -use cuda_core::{vmm, Device, IntoResult}; +use cuda_core::{vmm, Context, IntoResult}; use std::mem::MaybeUninit; fn gpu_count() -> Result { @@ -37,8 +37,8 @@ fn multicast_two_gpu_team_roundtrip() { return; } - let ctx0 = Device::new(0).expect("GPU 0 device"); - let ctx1 = Device::new(1).expect("GPU 1 device"); + let ctx0 = Context::new(0).expect("GPU 0 device"); + let ctx1 = Context::new(1).expect("GPU 1 device"); let devices = [ctx0.cu_device(), ctx1.cu_device()]; for (i, &dev) in devices.iter().enumerate() { diff --git a/cuda-core/tests/simt_vmm_p2p.rs b/cuda-core/tests/vmm_p2p.rs similarity index 95% rename from cuda-core/tests/simt_vmm_p2p.rs rename to cuda-core/tests/vmm_p2p.rs index 8adca11b01..c8fa45c202 100644 --- a/cuda-core/tests/simt_vmm_p2p.rs +++ b/cuda-core/tests/vmm_p2p.rs @@ -23,9 +23,9 @@ //! //! Requires a system with at least 2 CUDA-capable GPUs with P2P support. -use cuda_core::simt::context::CudaContext; -use cuda_core::simt::peer; -use cuda_core::simt::vmm; +use cuda_core::context::CudaContext; +use cuda_core::peer; +use cuda_core::vmm; use cuda_core::IntoResult; use std::mem::MaybeUninit; @@ -62,7 +62,7 @@ fn vmm_alloc_map_set_access_roundtrip() { let stream = ctx.default_stream(); let pattern: Vec = (0..64).map(|i| (i * 3 + 7) as u8).collect(); unsafe { - cuda_core::simt::memory::memcpy_htod_async( + cuda_core::memory::memcpy_htod_async( va.base(), pattern.as_ptr(), pattern.len(), @@ -74,7 +74,7 @@ fn vmm_alloc_map_set_access_roundtrip() { let mut readback = vec![0u8; 64]; unsafe { - cuda_core::simt::memory::memcpy_dtoh_async( + cuda_core::memory::memcpy_dtoh_async( readback.as_mut_ptr(), va.base(), readback.len(), @@ -142,7 +142,7 @@ fn p2p_vmm_cross_gpu_access() { let stream0 = ctx0.default_stream(); ctx0.bind_to_thread().expect("bind ctx0"); unsafe { - cuda_core::simt::memory::memcpy_htod_async( + cuda_core::memory::memcpy_htod_async( va0.base(), pattern.as_ptr(), byte_len, @@ -157,7 +157,7 @@ fn p2p_vmm_cross_gpu_access() { let stream1 = ctx1.default_stream(); ctx1.bind_to_thread().expect("bind ctx1"); unsafe { - cuda_core::simt::memory::memcpy_dtoh_async( + cuda_core::memory::memcpy_dtoh_async( readback.as_mut_ptr(), va1.base(), byte_len, diff --git a/cuda-oxide/README.md b/cuda-oxide/README.md index 7d65a807f0..d16d848c3d 100644 --- a/cuda-oxide/README.md +++ b/cuda-oxide/README.md @@ -31,7 +31,7 @@ Please see [CONTRIBUTING.md](../CONTRIBUTING.md) if you're interested in contrib ```rust use cuda_device::{cuda_module, kernel, thread, DisjointSlice}; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; // Device: generic kernel that applies any function to each element. @@ -303,7 +303,7 @@ cargo oxide run gemm_sol_final | `cuda-host` | Typed module loading, launch helpers, LTOIR loader | | `cuda-macros` | Proc macros (`#[cuda_module]`, `#[kernel]`, `gpu_printf!`) | | `cuda-bindings` | Raw `bindgen` FFI bindings to `cuda.h` (shared with cutile-rs) | -| `cuda-core` | Safe RAII wrappers (`CudaContext`, `DeviceBuffer`, ...); SIMT API under `cuda_core::simt` | +| `cuda-core` | Safe RAII wrappers (`CudaContext`, `DeviceBuffer`, ...); one host API shared by SIMT and Tile | | `cuda-async` | Async layer (`DeviceOperation`, `DeviceBox`, ...); SIMT API under `cuda_async::simt` | | `libnvvm-sys` | `dlopen` bindings to libNVVM (used by `cuda-host::ltoir`) | | `cuda-target-spec` | Shared CUDA target parsing and recorded LLVM PTX-floor policy | diff --git a/cuda-oxide/crates/cargo-oxide/src/commands/scaffold.rs b/cuda-oxide/crates/cargo-oxide/src/commands/scaffold.rs index db77c02d29..28566eaa47 100644 --- a/cuda-oxide/crates/cargo-oxide/src/commands/scaffold.rs +++ b/cuda-oxide/crates/cargo-oxide/src/commands/scaffold.rs @@ -148,7 +148,7 @@ fn scaffold_main_rs(async_mode: bool) -> String { if async_mode { r#"use cuda_async::simt::device_context::{init_device_contexts, with_cuda_context}; use cuda_async::simt::device_operation::DeviceOperation; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; @@ -169,7 +169,7 @@ mod kernels { #[tokio::main] async fn main() -> Result<(), Box> { use cuda_async::simt::device_box::DeviceBox; - use cuda_core::simt::memory::{malloc_async, memcpy_dtoh_async, memcpy_htod_async}; + use cuda_core::memory::{malloc_async, memcpy_dtoh_async, memcpy_htod_async}; use std::mem; init_device_contexts(0, 1)?; @@ -190,9 +190,9 @@ async fn main() -> Result<(), Box> { memcpy_htod_async(b, b_host.as_ptr(), num_bytes, stream.cu_stream()).unwrap(); stream.synchronize().unwrap(); ( - DeviceBox::<[f32]>::from_raw_parts(a, N, 0), - DeviceBox::<[f32]>::from_raw_parts(b, N, 0), - DeviceBox::<[f32]>::from_raw_parts(c, N, 0), + DeviceBox::<[f32]>::from_raw_parts(a, N, stream.clone()), + DeviceBox::<[f32]>::from_raw_parts(b, N, stream.clone()), + DeviceBox::<[f32]>::from_raw_parts(c, N, stream.clone()), ) } })?; diff --git a/cuda-oxide/crates/cargo-oxide/src/commands/tests.rs b/cuda-oxide/crates/cargo-oxide/src/commands/tests.rs index bf0551deb2..e1ea1f6d13 100644 --- a/cuda-oxide/crates/cargo-oxide/src/commands/tests.rs +++ b/cuda-oxide/crates/cargo-oxide/src/commands/tests.rs @@ -5392,7 +5392,7 @@ fn scaffold_async_template_keeps_async_deps_and_docs() { assert!(files.cargo_toml.contains("cuda-async = { git = \"")); assert!(!files.cargo_toml.contains("cuda-async = \"")); assert!(!files.cargo_toml.contains("cuda-bindings")); - assert!(files.main_rs.contains("use cuda_core::simt::LaunchConfig;")); + assert!(files.main_rs.contains("use cuda_core::LaunchConfig;")); assert!( files .main_rs diff --git a/cuda-oxide/crates/cuda-host/README.md b/cuda-oxide/crates/cuda-host/README.md index 7d921a8bb6..fccf549af0 100644 --- a/cuda-oxide/crates/cuda-host/README.md +++ b/cuda-oxide/crates/cuda-host/README.md @@ -8,7 +8,7 @@ keep `#[kernel]` on the actual GPU entry points, then load the embedded device artifact as a typed Rust value. ```rust -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/cuda-host/src/launch.rs b/cuda-oxide/crates/cuda-host/src/launch.rs index c3a2266731..f39e9e9519 100644 --- a/cuda-oxide/crates/cuda-host/src/launch.rs +++ b/cuda-oxide/crates/cuda-host/src/launch.rs @@ -466,6 +466,14 @@ pub fn push_kernel_row_width_device_slice( /// `UnsafeCell`-based or atomic element types under their synchronization /// contract. /// +/// `storage()` must return the allocation covering this exact view, with the +/// same CUDA context and shared access tracker as every other safe alias. +/// When it returns `None`, the implementation must independently retain the +/// allocation and exclude conflicting accesses until GPU completion, even +/// when the launch future is dropped or forgotten. Returning `false` from +/// `shared_access_writes()` additionally promises that the shared reference +/// cannot write any device memory in this range. +/// /// Implementing this trait is unsafe because generated launch methods trust /// the pointer and length without inspecting the allocation: /// @@ -491,6 +499,20 @@ pub unsafe trait KernelSliceArg { /// Returns the number of `T` elements in the allocation. fn len(&self) -> usize; + /// An independently retained allocation and access tracker for this argument. + /// Implementations returning None must themselves keep memory and exclusion + /// valid through GPU completion, including dropped and forgotten futures. + fn storage(&self) -> Option { + None + } + + /// Shared references to interior-mutable elements (including device atomics) + /// can write. Such arguments require exclusive tracking against ordinary + /// reads/copies; the conservative default also covers unknown custom types. + fn shared_access_writes(&self) -> bool { + true + } + /// Returns true when the allocation has zero elements. fn is_empty(&self) -> bool { self.len() == 0 @@ -514,6 +536,13 @@ pub unsafe trait KernelSliceArgMut: KernelSliceArg {} // SAFETY: DeviceBuffer owns the reported allocation and keeps its CUDA context // alive; its pointer and length accessors describe that allocation exactly. unsafe impl KernelSliceArg for cuda_core::DeviceBuffer { + fn storage(&self) -> Option { + Some(self.storage().clone()) + } + fn shared_access_writes(&self) -> bool { + self.shared_access_writes() + } + type Elem = T; fn cu_deviceptr(&self) -> cuda_core::sys::CUdeviceptr { @@ -534,6 +563,10 @@ unsafe impl KernelSliceArgMut for cuda_core::DeviceBuffer {} // SAFETY: DeviceBox owns the reported allocation and its raw constructor // requires the pointer, element count, and device ordinal to be truthful. unsafe impl KernelSliceArg for cuda_async::simt::device_box::DeviceBox<[T]> { + fn storage(&self) -> Option { + Some(self.storage().clone()) + } + type Elem = T; fn cu_deviceptr(&self) -> cuda_core::sys::CUdeviceptr { @@ -557,6 +590,13 @@ unsafe impl KernelSliceArg for Arc where B: KernelSliceArg + ?Sized, { + fn storage(&self) -> Option { + self.as_ref().storage() + } + fn shared_access_writes(&self) -> bool { + self.as_ref().shared_access_writes() + } + type Elem = B::Elem; fn cu_deviceptr(&self) -> cuda_core::sys::CUdeviceptr { @@ -568,6 +608,25 @@ where } } +#[cfg(feature = "async")] +// SAFETY: views retain their parent's storage and preserve typed byte extents; +// launch retention protects the allocation independently of the Rust borrow. +unsafe impl KernelSliceArg for cuda_core::DeviceBufferView<'_, T> { + type Elem = T; + fn cu_deviceptr(&self) -> cuda_core::sys::CUdeviceptr { + self.cu_deviceptr() + } + fn len(&self) -> usize { + self.len() + } + fn storage(&self) -> Option { + Some(self.storage().clone()) + } + fn shared_access_writes(&self) -> bool { + self.shared_access_writes() + } +} + #[doc(hidden)] #[cfg(feature = "async")] pub fn new_async_kernel_launch_builder<'a>( @@ -801,6 +860,9 @@ pub fn push_async_read_only_device_slice( ) where B: KernelSliceArg + ?Sized, { + if let Some(storage) = buffer.storage() { + launch.retain_buffer(storage, buffer.shared_access_writes()); + } let len = buffer.len(); launch.push_scalar_arg(kernel_slice_device_ptr::( buffer.cu_deviceptr(), @@ -824,6 +886,9 @@ pub fn push_async_writable_device_slice( ) where B: KernelSliceArgMut + ?Sized, { + if let Some(storage) = buffer.storage() { + launch.retain_buffer(storage, true); + } let len = buffer.len(); launch.push_scalar_arg(kernel_slice_device_ptr::( buffer.cu_deviceptr(), @@ -848,6 +913,7 @@ pub fn push_async_row_width_device_slice( launch: &mut cuda_async::simt::launch::AsyncKernelLaunchBuilder<'_>, bound: RowWidth<'_, T>, ) { + launch.retain_buffer(bound.buffer.storage().clone(), true); let (ptr, len, width) = row_width_device_buffer_arg(bound); launch.push_scalar_arg(ptr); launch.push_scalar_arg(len); @@ -869,6 +935,9 @@ pub fn push_async_owned_row_width_device_slice( ) where B: KernelSliceArgMut, { + if let Some(storage) = bound.buffer.storage() { + launch.retain_buffer(storage, true); + } let len = bound.buffer.len(); launch.push_scalar_arg(kernel_slice_device_ptr::( bound.buffer.cu_deviceptr(), diff --git a/cuda-oxide/crates/cuda-host/src/lib.rs b/cuda-oxide/crates/cuda-host/src/lib.rs index 1fa90924a7..6de2486788 100644 --- a/cuda-oxide/crates/cuda-host/src/lib.rs +++ b/cuda-oxide/crates/cuda-host/src/lib.rs @@ -51,7 +51,7 @@ //! ```ignore //! use cuda_device::{kernel, thread, DisjointSlice}; //! use cuda_host::cuda_module; -//! use cuda_core::simt::LaunchConfig; +//! use cuda_core::LaunchConfig; //! use cuda_core::{CudaContext, DeviceBuffer}; //! //! #[cuda_module] diff --git a/cuda-oxide/crates/cuda-host/tests/cuda_module_api.rs b/cuda-oxide/crates/cuda-host/tests/cuda_module_api.rs index e41e9c70d7..c61036465e 100644 --- a/cuda-oxide/crates/cuda-host/tests/cuda_module_api.rs +++ b/cuda-oxide/crates/cuda-host/tests/cuda_module_api.rs @@ -5,7 +5,7 @@ #![allow(dead_code, non_upper_case_globals, clippy::needless_lifetimes)] -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaStream, DeviceBuffer, LaunchConfig1D}; #[cfg(feature = "async")] use cuda_host::cuda_async::simt::device_box::DeviceBox; diff --git a/cuda-oxide/crates/cuda-host/tests/shared_launch_lifetimes.rs b/cuda-oxide/crates/cuda-host/tests/shared_launch_lifetimes.rs new file mode 100644 index 0000000000..b8f137f249 --- /dev/null +++ b/cuda-oxide/crates/cuda-host/tests/shared_launch_lifetimes.rs @@ -0,0 +1,110 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +#![cfg(feature = "async")] + +use cuda_async::simt::{ + device_operation::DeviceOperation, launch::AsyncKernelLaunchBuilder, + scheduling_policies::SingleStream, +}; +use cuda_core::{Context, DeviceBuffer, LaunchConfig}; +use std::{ + future::Future, + pin::Pin, + sync::{Arc, mpsc}, + task::{Context as TaskContext, Waker}, + time::Duration, +}; + +const PTX: &str = ".version 7.0\n.target sm_52\n.address_size 64\n.visible .entry use_slice(.param .u64 ptr, .param .u64 len) { ret; }"; + +struct Gate(mpsc::Sender<()>); +impl Drop for Gate { + fn drop(&mut self) { + let _ = self.0.send(()); + } +} + +fn pending_launch_keeps_access(forget: bool, atomic: bool) { + let context = Context::new(0).unwrap(); + let stream = context.new_stream().unwrap(); + let other = context.new_stream().unwrap(); + let function = Arc::new( + context + .load_module_from_ptx_src(PTX) + .unwrap() + .load_function("use_slice") + .unwrap(), + ); + let buffer = DeviceBuffer::from_host(&stream, &[1u32; 32]).unwrap(); + let storage = buffer.storage().clone(); + let mut builder = AsyncKernelLaunchBuilder::new(function); + if atomic { + let buffer = buffer.wrap_elem::(); + cuda_host::push_async_read_only_device_slice(&mut builder, &buffer); + drop(buffer); + } else { + let mut buffer = buffer; + cuda_host::push_async_writable_device_slice(&mut builder, &mut buffer); + drop(buffer); + } + let (tx, rx) = mpsc::channel(); + stream + .launch_host_function(move || { + let _ = rx.recv_timeout(Duration::from_secs(10)); + }) + .unwrap(); + let gate = Gate(tx); + // SAFETY: PTX declares exactly the pointer/length packet above and no + // memory accesses. The descriptors still model a writable kernel argument, + // so this test can observe exclusion without deliberately racing GPU memory. + let launch = unsafe { + builder.finalize_unchecked(LaunchConfig { + grid_dim: (1, 1, 1), + block_dim: (1, 1, 1), + shared_mem_bytes: 0, + }) + }; + let mut future = launch + .schedule(&SingleStream { + stream: Some(stream.clone()), + }) + .unwrap(); + assert!( + Pin::new(&mut future) + .poll(&mut TaskContext::from_waker(Waker::noop())) + .is_pending() + ); + if forget { + std::mem::forget(future); + } else { + drop(future); + } + assert!( + storage.acquire(&other, false, false).is_err(), + "early future release lost a writable argument's access lease" + ); + drop(gate); + stream.synchronize().unwrap(); + assert!( + storage.acquire(&other, false, false).is_ok(), + "completed work must release exclusion" + ); +} + +#[test] +#[ignore = "requires a live CUDA GPU"] +fn dropped_borrowed_launch_retains_buffers_and_accesses() { + pending_launch_keeps_access(false, false); +} +#[test] +#[ignore = "requires a live CUDA GPU"] +fn forgotten_borrowed_launch_retains_buffers_and_accesses() { + pending_launch_keeps_access(true, false); +} +#[test] +#[ignore = "requires a live CUDA GPU"] +fn shared_atomic_arguments_exclude_ordinary_reads_after_drop() { + pending_launch_keeps_access(false, true); +} diff --git a/cuda-oxide/crates/cuda-macros/src/cuda_module/launchers.rs b/cuda-oxide/crates/cuda-macros/src/cuda_module/launchers.rs index 279a15cce4..d8603f5130 100644 --- a/cuda-oxide/crates/cuda-macros/src/cuda_module/launchers.rs +++ b/cuda-oxide/crates/cuda-macros/src/cuda_module/launchers.rs @@ -407,7 +407,7 @@ fn generate_cuda_module_legacy_launch_method(kernel: &CudaModuleKernel) -> Token #vis unsafe fn #fn_name #impl_generics ( &self, #stream: &::cuda_core::CudaStream, - #config: ::cuda_core::simt::LaunchConfig, + #config: ::cuda_core::LaunchConfig, #(#params),* ) -> ::core::result::Result<(), ::cuda_core::DriverError> #where_clause @@ -493,7 +493,7 @@ fn generate_cuda_module_prepared_launch_method(kernel: &CudaModuleKernel) -> Tok #vis unsafe fn #unchecked_name #impl_generics ( &self, #stream: &::cuda_core::CudaStream, - #config: ::cuda_core::simt::LaunchConfig, + #config: ::cuda_core::LaunchConfig, #(#params),* ) -> ::core::result::Result<(), ::cuda_core::DriverError> #where_clause @@ -556,7 +556,7 @@ fn generate_cuda_module_legacy_async_launch_method(kernel: &CudaModuleKernel) -> #[allow(clippy::multiple_bound_locations, clippy::too_many_arguments)] #vis unsafe fn #fn_name #impl_generics ( &self, - #config: ::cuda_core::simt::LaunchConfig, + #config: ::cuda_core::LaunchConfig, #(#params),* ) -> ::core::result::Result<::cuda_host::AsyncKernelLaunch<#async_lifetime>, ::cuda_core::DriverError> #where_clause @@ -681,7 +681,7 @@ fn generate_cuda_module_prepared_async_launch_method(kernel: &CudaModuleKernel) #[allow(clippy::multiple_bound_locations, clippy::too_many_arguments)] #vis unsafe fn #unchecked_name #impl_generics ( &self, - #config: ::cuda_core::simt::LaunchConfig, + #config: ::cuda_core::LaunchConfig, #(#params),* ) -> ::core::result::Result< ::cuda_host::AsyncKernelLaunch<#async_lifetime>, @@ -784,7 +784,7 @@ fn generate_cuda_module_legacy_owned_async_launch_method( #[allow(clippy::multiple_bound_locations, clippy::too_many_arguments)] #vis unsafe fn #fn_name #impl_generics ( &self, - #config: ::cuda_core::simt::LaunchConfig, + #config: ::cuda_core::LaunchConfig, #(#params),* ) -> ::core::result::Result<::cuda_host::OwnedAsyncKernelLaunch<#resources_ty>, ::cuda_core::DriverError> #where_clause @@ -955,7 +955,7 @@ fn generate_cuda_module_prepared_owned_async_launch_method( #[allow(clippy::multiple_bound_locations, clippy::too_many_arguments)] #vis unsafe fn #unchecked_name #impl_generics ( &self, - #config: ::cuda_core::simt::LaunchConfig, + #config: ::cuda_core::LaunchConfig, #(#params),* ) -> ::core::result::Result< ::cuda_host::OwnedAsyncKernelLaunch<#resources_ty>, diff --git a/cuda-oxide/crates/cuda-macros/src/lib.rs b/cuda-oxide/crates/cuda-macros/src/lib.rs index 0a3d738b55..50e4b423d4 100644 --- a/cuda-oxide/crates/cuda-macros/src/lib.rs +++ b/cuda-oxide/crates/cuda-macros/src/lib.rs @@ -1247,7 +1247,7 @@ pub fn cuda_launch(input: TokenStream) -> TokenStream { /// /// ```ignore /// use cuda_host::cuda_launch_async; -/// use cuda_core::simt::LaunchConfig; +/// use cuda_core::LaunchConfig; /// /// // SAFETY: ABI, lifetimes, geometry, and resources match vecadd. /// let op = unsafe { diff --git a/cuda-oxide/crates/cuda-macros/src/tests/cuda_module.rs b/cuda-oxide/crates/cuda-macros/src/tests/cuda_module.rs index be7a69ac79..3502c5a7f2 100644 --- a/cuda-oxide/crates/cuda-macros/src/tests/cuda_module.rs +++ b/cuda-oxide/crates/cuda-macros/src/tests/cuda_module.rs @@ -711,7 +711,7 @@ fn launch_contract_generates_prepared_and_unsafe_raw_paths() { expanded.contains("__cuda_oxide_prepared:&::cuda_core::PreparedLaunch<__map_CudaKernel>") ); assert!(expanded.contains("unsafefnmap_unchecked(")); - assert!(expanded.contains("__cuda_oxide_config:::cuda_core::simt::LaunchConfig")); + assert!(expanded.contains("__cuda_oxide_config:::cuda_core::LaunchConfig")); assert!(expanded.contains("min_alignment:128u32")); assert!(expanded.contains("with_min_compute_capability(8u32,0u32)")); assert!(expanded.contains("with_u32_coordinates()")); diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/async_launch_macro_requires_unsafe.rs b/cuda-oxide/crates/cuda-macros/tests/compile_fail/async_launch_macro_requires_unsafe.rs index a80b8e0c6f..2d0d3cd16a 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/async_launch_macro_requires_unsafe.rs +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/async_launch_macro_requires_unsafe.rs @@ -22,7 +22,7 @@ mod cuda_async { pub mod simt { pub mod launch { use cuda_core::CudaFunction; - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use std::sync::Arc; pub struct AsyncKernelLaunchBuilder; @@ -42,7 +42,7 @@ fn launch_without_unsafe(module: &FakeModule) { let _ = cuda_launch_async! { kernel: raw, module: module, - config: cuda_core::simt::LaunchConfig { + config: cuda_core::LaunchConfig { grid_dim: (1, 2, 1), block_dim: (64, 1, 1), shared_mem_bytes: 0, diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/async_launch_macro_requires_unsafe.stderr b/cuda-oxide/crates/cuda-macros/tests/compile_fail/async_launch_macro_requires_unsafe.stderr index 98269f9792..4901480d60 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/async_launch_macro_requires_unsafe.stderr +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/async_launch_macro_requires_unsafe.stderr @@ -5,7 +5,7 @@ error[E0133]: call to unsafe function `cuda_async::simt::launch::AsyncKernelLaun | _____________^ 43 | | kernel: raw, 44 | | module: module, -45 | | config: cuda_core::simt::LaunchConfig { +45 | | config: cuda_core::LaunchConfig { ... | 50 | | args: [], 51 | | }; diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/contract_unchecked_requires_unsafe.rs b/cuda-oxide/crates/cuda-macros/tests/compile_fail/contract_unchecked_requires_unsafe.rs index 402f69f667..6c3734e051 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/contract_unchecked_requires_unsafe.rs +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/contract_unchecked_requires_unsafe.rs @@ -22,7 +22,7 @@ fn unchecked_without_unsafe( module .contracted_unchecked( stream, - cuda_core::simt::LaunchConfig { + cuda_core::LaunchConfig { grid_dim: (1, 1, 1), block_dim: (64, 1, 1), shared_mem_bytes: 0, diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/contract_unchecked_requires_unsafe.stderr b/cuda-oxide/crates/cuda-macros/tests/compile_fail/contract_unchecked_requires_unsafe.stderr index 4a90e0a54a..5d059edbc3 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/contract_unchecked_requires_unsafe.stderr +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/contract_unchecked_requires_unsafe.stderr @@ -4,7 +4,7 @@ error[E0133]: call to unsafe function `LoadedModule::contracted_unchecked` is un 22 | / module 23 | | .contracted_unchecked( 24 | | stream, -25 | | cuda_core::simt::LaunchConfig { +25 | | cuda_core::LaunchConfig { ... | 30 | | input, 31 | | ) diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_include_kernel_boundary.rs b/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_include_kernel_boundary.rs index 1293feb7a5..aa8aca52c5 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_include_kernel_boundary.rs +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_include_kernel_boundary.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use cuda_core::CudaStream; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_macros::cuda_module; #[cuda_module] diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_nested_type_mismatch.rs b/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_nested_type_mismatch.rs index 6e43cd2287..59575c3e65 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_nested_type_mismatch.rs +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_nested_type_mismatch.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use cuda_core::CudaStream; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_macros::cuda_module; #[cuda_module] diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_pub_super_scope.rs b/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_pub_super_scope.rs index 5fedcf6534..b29ea97625 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_pub_super_scope.rs +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/cuda_module_pub_super_scope.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use cuda_core::CudaStream; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_macros::cuda_module; #[cuda_module] diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_contract_alias_fakes_row_width.rs b/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_contract_alias_fakes_row_width.rs index a66be86723..57896d07f0 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_contract_alias_fakes_row_width.rs +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_contract_alias_fakes_row_width.rs @@ -32,7 +32,7 @@ fn launch( // The spelling chose the three-word (ptr, len, width) marshalling, but // the resolved device slice is two words. The ABI bound must reject the // call before a mis-shaped packet can exist. - let cfg = cuda_core::simt::LaunchConfig { + let cfg = cuda_core::LaunchConfig { grid_dim: (1, 1, 1), block_dim: (64, 1, 1), shared_mem_bytes: 0, diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_contract_alias_hides_row_width.rs b/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_contract_alias_hides_row_width.rs index fbbcaff005..88445a9f9f 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_contract_alias_hides_row_width.rs +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_contract_alias_hides_row_width.rs @@ -32,7 +32,7 @@ fn launch( // The spelling chose the two-word (ptr, len) marshalling, so this raw // launch would push two kernel parameters for a three-parameter kernel. // The ABI bound must reject the call. - let cfg = cuda_core::simt::LaunchConfig { + let cfg = cuda_core::LaunchConfig { grid_dim: (1, 1, 1), block_dim: (64, 1, 1), shared_mem_bytes: 0, diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_requires_unsafe.rs b/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_requires_unsafe.rs index 112ee2f037..6edd83f0b3 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_requires_unsafe.rs +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_requires_unsafe.rs @@ -28,7 +28,7 @@ fn launch_without_unsafe( kernel: dummy, stream: stream, module: module, - config: cuda_core::simt::LaunchConfig::for_num_elems(1), + config: cuda_core::LaunchConfig::for_num_elems(1), args: [x] } .unwrap(); diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_requires_unsafe.stderr b/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_requires_unsafe.stderr index f63438e3eb..fe6ee6e6b3 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_requires_unsafe.stderr +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/launch_requires_unsafe.stderr @@ -5,7 +5,7 @@ error[E0133]: call to unsafe function `launch_kernel_on_stream` is unsafe and re 28 | | kernel: dummy, 29 | | stream: stream, 30 | | module: module, -31 | | config: cuda_core::simt::LaunchConfig::for_num_elems(1), +31 | | config: cuda_core::LaunchConfig::for_num_elems(1), 32 | | args: [x] 33 | | } | |_____^ call to unsafe function diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/uncontracted_launch_requires_unsafe.rs b/cuda-oxide/crates/cuda-macros/tests/compile_fail/uncontracted_launch_requires_unsafe.rs index 5a1fa7d265..b2394780a5 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/uncontracted_launch_requires_unsafe.rs +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/uncontracted_launch_requires_unsafe.rs @@ -20,7 +20,7 @@ fn launch_without_unsafe( module .uncontracted( stream, - cuda_core::simt::LaunchConfig { + cuda_core::LaunchConfig { grid_dim: (1, 2, 1), block_dim: (64, 1, 1), shared_mem_bytes: 0, diff --git a/cuda-oxide/crates/cuda-macros/tests/compile_fail/uncontracted_launch_requires_unsafe.stderr b/cuda-oxide/crates/cuda-macros/tests/compile_fail/uncontracted_launch_requires_unsafe.stderr index 19a3595186..ea7d2fd9a1 100644 --- a/cuda-oxide/crates/cuda-macros/tests/compile_fail/uncontracted_launch_requires_unsafe.stderr +++ b/cuda-oxide/crates/cuda-macros/tests/compile_fail/uncontracted_launch_requires_unsafe.stderr @@ -4,7 +4,7 @@ error[E0133]: call to unsafe function `LoadedModule::uncontracted` is unsafe and 20 | / module 21 | | .uncontracted( 22 | | stream, -23 | | cuda_core::simt::LaunchConfig { +23 | | cuda_core::LaunchConfig { ... | 28 | | 7, 29 | | ) diff --git a/cuda-oxide/crates/cuda-macros/tests/pass/async_launch_macro_in_unsafe.rs b/cuda-oxide/crates/cuda-macros/tests/pass/async_launch_macro_in_unsafe.rs index c983dd75f5..d0b5a1933b 100644 --- a/cuda-oxide/crates/cuda-macros/tests/pass/async_launch_macro_in_unsafe.rs +++ b/cuda-oxide/crates/cuda-macros/tests/pass/async_launch_macro_in_unsafe.rs @@ -22,7 +22,7 @@ mod cuda_async { pub mod simt { pub mod launch { use cuda_core::CudaFunction; - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use std::sync::Arc; pub struct AsyncKernelLaunchBuilder; @@ -43,7 +43,7 @@ fn launch_with_unsafe(module: &FakeModule) { cuda_launch_async! { kernel: raw, module: module, - config: cuda_core::simt::LaunchConfig { + config: cuda_core::LaunchConfig { grid_dim: (1, 2, 1), block_dim: (64, 1, 1), shared_mem_bytes: 0, diff --git a/cuda-oxide/crates/cuda-macros/tests/pass/const_generic_hygiene.rs b/cuda-oxide/crates/cuda-macros/tests/pass/const_generic_hygiene.rs index 0ede621af9..85fb0a1bca 100644 --- a/cuda-oxide/crates/cuda-macros/tests/pass/const_generic_hygiene.rs +++ b/cuda-oxide/crates/cuda-macros/tests/pass/const_generic_hygiene.rs @@ -3,7 +3,7 @@ #![allow(dead_code, non_upper_case_globals)] -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaModule, CudaStream}; use cuda_macros::{cuda_launch, kernel}; use std::sync::Arc; diff --git a/cuda-oxide/crates/cuda-macros/tests/pass/cuda_module_inline_namespaces.rs b/cuda-oxide/crates/cuda-macros/tests/pass/cuda_module_inline_namespaces.rs index c964a060d1..aa475b823e 100644 --- a/cuda-oxide/crates/cuda-macros/tests/pass/cuda_module_inline_namespaces.rs +++ b/cuda-oxide/crates/cuda-macros/tests/pass/cuda_module_inline_namespaces.rs @@ -5,7 +5,7 @@ #![allow(dead_code)] use cuda_core::CudaStream; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_macros::{cuda_module, kernel}; #[derive(Clone, Copy)] diff --git a/cuda-oxide/crates/cuda-macros/tests/pass/grid_constant_arguments.rs b/cuda-oxide/crates/cuda-macros/tests/pass/grid_constant_arguments.rs index 779aafd31c..b871fab6bd 100644 --- a/cuda-oxide/crates/cuda-macros/tests/pass/grid_constant_arguments.rs +++ b/cuda-oxide/crates/cuda-macros/tests/pass/grid_constant_arguments.rs @@ -34,7 +34,7 @@ fn typed_launches( stream: &cuda_core::CudaStream, descriptor: Descriptor, ) { - let config = cuda_core::simt::LaunchConfig::for_num_elems(1); + let config = cuda_core::LaunchConfig::for_num_elems(1); // SAFETY: this function only type-checks the by-value host ABI; it is never run. unsafe { module.plain(stream, config, descriptor).unwrap(); diff --git a/cuda-oxide/crates/cuda-macros/tests/pass/uncontracted_launch_in_unsafe.rs b/cuda-oxide/crates/cuda-macros/tests/pass/uncontracted_launch_in_unsafe.rs index 5fc62ce57c..0fa24556be 100644 --- a/cuda-oxide/crates/cuda-macros/tests/pass/uncontracted_launch_in_unsafe.rs +++ b/cuda-oxide/crates/cuda-macros/tests/pass/uncontracted_launch_in_unsafe.rs @@ -21,7 +21,7 @@ fn launch_with_unsafe( module .uncontracted( stream, - cuda_core::simt::LaunchConfig { + cuda_core::LaunchConfig { grid_dim: (1, 2, 1), block_dim: (64, 1, 1), shared_mem_bytes: 0, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/src/main.rs index f3dab8edbd..20c46ab9c7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/abi_hmm/src/main.rs @@ -37,7 +37,7 @@ //! ``` use cuda_core::CudaContext; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_device::{cuda_module, kernel, thread}; // ============================================================================= diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/src/main.rs index c2c124323e..9052739af7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/addressof_sharedarray/src/main.rs @@ -47,7 +47,7 @@ #![allow(static_mut_refs)] #![allow(clippy::assign_op_pattern)] // Expanded assignment preserves the addressof repro CFG. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, SharedArray, device, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/src/main.rs index de2bd536ea..2b5b6bd30a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_loads/src/main.rs @@ -26,7 +26,7 @@ //! //! Run: `cargo oxide run aligned_field_loads` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/src/main.rs index 2bae17b7e0..a7948e54ad 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/aligned_field_stores/src/main.rs @@ -33,7 +33,7 @@ //! //! Run: `cargo oxide run aligned_field_stores` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/src/main.rs index 686f91339e..3f2a47b3dc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_constants/src/main.rs @@ -32,7 +32,7 @@ //! ./crates/rustc-codegen-cuda/examples/array_constants/verify-code-shape.sh use core::mem::MaybeUninit; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/src/main.rs index 9b7a1c2917..d430175d91 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_for_loop/src/main.rs @@ -26,7 +26,7 @@ //! //! Run: cargo oxide run array_for_loop -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/src/main.rs index 3a56f6fe09..31e610a29f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_index/src/main.rs @@ -24,7 +24,7 @@ //! //! Once array index writes are implemented, all tests should pass. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/src/main.rs index 8e47e960a2..707cc6aed1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/array_init/src/main.rs @@ -15,7 +15,7 @@ //! //! Run: cargo oxide run array_init -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/src/main.rs index c8773d936d..72d92b7e66 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/asin_acos_smoke/src/main.rs @@ -34,7 +34,7 @@ //! //! Exits 0 on PASS, 1 on FAIL. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/src/main.rs index df1a653686..02c41b3909 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/assume_init_uninhabited_trap/src/main.rs @@ -10,7 +10,7 @@ //! ("attempted to instantiate uninhabited type"), so the kernel must trap. //! If the launch succeeds instead, the panic path was compiled away. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/src/main.rs index de892af8f0..2372cba196 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_mlp/src/main.rs @@ -39,10 +39,8 @@ use cuda_async::simt::device_box::DeviceBox; use cuda_async::simt::device_context::init_device_contexts; use cuda_async::simt::device_operation::{self, DeviceOperation, Zippable, value}; use cuda_async::zip; -use cuda_core::simt::LaunchConfig; -use cuda_core::simt::memory::{ - malloc_async, memcpy_dtoh_async, memcpy_htod_async, memset_d8_async, -}; +use cuda_core::LaunchConfig; +use cuda_core::memory::{malloc_async, memcpy_dtoh_async, memcpy_htod_async, memset_d8_async}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; use std::future::IntoFuture; @@ -142,7 +140,7 @@ fn h2d(host_data: Vec) -> impl DeviceOperation> { unsafe { let dptr = malloc_async(stream.cu_stream(), num_bytes).unwrap(); memcpy_htod_async(dptr, host_data.as_ptr(), num_bytes, stream.cu_stream()).unwrap(); - value(DeviceBox::from_raw_parts(dptr, n, ctx.get_device_id())) + value(DeviceBox::from_raw_parts(dptr, n, stream.clone())) } }) } @@ -156,7 +154,7 @@ fn zeros(n: usize) -> impl DeviceOperation> { unsafe { let dptr = malloc_async(stream.cu_stream(), num_bytes).unwrap(); memset_d8_async(dptr, 0, num_bytes, stream.cu_stream()).unwrap(); - value(DeviceBox::from_raw_parts(dptr, n, ctx.get_device_id())) + value(DeviceBox::from_raw_parts(dptr, n, stream.clone())) } }) } diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/src/main.rs index d79daadf61..32a2c37c84 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/async_vecadd/src/main.rs @@ -46,8 +46,8 @@ async fn main() -> Result<(), Box> { use cuda_async::simt::device_box::DeviceBox; use cuda_async::simt::device_context::init_device_contexts; use cuda_async::simt::device_operation::DeviceOperation; - use cuda_core::simt::LaunchConfig; - use cuda_core::simt::memory::{malloc_async, memcpy_dtoh_async, memcpy_htod_async}; + use cuda_core::LaunchConfig; + use cuda_core::memory::{malloc_async, memcpy_dtoh_async, memcpy_htod_async}; use std::mem; println!("=== Async Vector Addition (cuda-async) ===\n"); @@ -83,9 +83,9 @@ async fn main() -> Result<(), Box> { stream.synchronize().unwrap(); - let a_dev = DeviceBox::<[f32]>::from_raw_parts(a_dptr, N, 0); - let b_dev = DeviceBox::<[f32]>::from_raw_parts(b_dptr, N, 0); - let c_dev = DeviceBox::<[f32]>::from_raw_parts(c_dptr, N, 0); + let a_dev = DeviceBox::<[f32]>::from_raw_parts(a_dptr, N, stream.clone()); + let b_dev = DeviceBox::<[f32]>::from_raw_parts(b_dptr, N, stream.clone()); + let c_dev = DeviceBox::<[f32]>::from_raw_parts(c_dptr, N, stream.clone()); (a_dev, b_dev, c_dev) } })?; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/src/bin/bench.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/src/bin/bench.rs index ba9f8d35c8..3a24a09025 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/src/bin/bench.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/src/bin/bench.rs @@ -12,7 +12,7 @@ use std::sync::Arc; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::atomic::{AtomicOrdering, DeviceAtomicF16, DeviceAtomicF32}; use cuda_device::{DisjointSlice, kernel, thread}; @@ -210,7 +210,7 @@ fn reset( stream: &CudaStream, ) -> Result<(), Box> { unsafe { - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( buffer.cu_deviceptr(), 0, buffer.num_bytes(), diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/src/main.rs index 94a77623bb..83939b562e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomic_f16/src/main.rs @@ -9,7 +9,7 @@ #![feature(f16)] -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::atomic::{AtomicOrdering, BlockAtomicF16, DeviceAtomicF16, SystemAtomicF16}; use cuda_device::{DisjointSlice, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/src/main.rs index 774cd77142..453c2e8a39 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/src/main.rs @@ -46,7 +46,7 @@ //! cargo oxide run atomics use core::sync::atomic::Ordering; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::atomic::{ AtomicOrdering, BlockAtomicU32, DeviceAtomicF32, DeviceAtomicF64, DeviceAtomicI32, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/src/main.rs index f450bff9f0..3ebcec49f7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/barrier/src/main.rs @@ -15,7 +15,7 @@ //! Build and run with: //! cargo oxide run barrier -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::barrier::{ Barrier, mbarrier_arrive, mbarrier_arrive_no_complete, mbarrier_init, mbarrier_inval, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/src/main.rs index 52f20059ce..f993c4dc52 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_arith/src/main.rs @@ -3,7 +3,7 @@ //! End-to-end example exercising all eight packed bf16x2 arithmetic intrinsics. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::bf16x2::{ abs_bf16x2, add_bf16x2, fma_relu_bf16x2, max_bf16x2, min_bf16x2, mul_bf16x2, neg_bf16x2, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/src/main.rs index cf0a5af7bc..50486794a7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bf16x2_fma/src/main.rs @@ -3,7 +3,7 @@ //! Behavior example for the packed bf16x2 FMA intrinsic. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::bf16x2::fma_bf16x2; use cuda_device::convert::cvt_bf16x2_f32; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/src/main.rs index 6225168543..ea5f112864 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/bool_phi_cmp/src/main.rs @@ -24,7 +24,7 @@ * cargo oxide run bool_phi_cmp */ -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/src/main.rs index 3c91191070..31a6c243ce 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/carrying_mul_add/src/main.rs @@ -30,7 +30,7 @@ #![feature(signed_bigint_helpers)] -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/src/main.rs index 80b013c00b..3e61123662 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_chunks/src/main.rs @@ -15,7 +15,7 @@ //! //! Run: `cargo oxide run cast_chunks` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/src/main.rs index 0fc21de2dd..1f907f8260 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cast_tests/src/main.rs @@ -24,7 +24,7 @@ //! the correct LLVM instruction. Struct↔ptr conversions (fat pointers, newtypes) //! are handled generically via `emit_pointer_cast` in mir-lower. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/src/main.rs index 4c84f7469a..4a8507f41b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cbrt_smoke/src/main.rs @@ -33,7 +33,7 @@ //! //! Exits 0 on PASS, 1 on FAIL. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/src/main.rs index dfdc160be1..50c7e5dfe0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/checked_arith/src/main.rs @@ -21,7 +21,7 @@ //! cargo oxide run checked_arith //! CUDA_OXIDE_NO_OPT=1 cargo oxide run checked_arith -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/src/main.rs index ddd6d92684..eb8c4191ef 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/clc/src/main.rs @@ -20,7 +20,7 @@ //! **Hardware Requirements:** Blackwell (B200, GB200) with SM 100+ use core::ptr::addr_of_mut; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::barrier::{ Barrier, fence_proxy_async_shared_cta, mbarrier_arrive_expect_tx, mbarrier_init, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/src/main.rs index d9d2a5c18f..4a0f9ed9ad 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cluster/src/main.rs @@ -274,7 +274,7 @@ mod kernels { // ============================================================================ fn main() { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== Thread Block Cluster Tests (sm_90+) ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/src/main.rs index b774c7856b..7e5981601d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/compiler_features/src/main.rs @@ -21,7 +21,7 @@ //! //! Run: cargo oxide run compiler_features -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::shared::cvta_generic_to_shared_offset; use cuda_device::{DisjointSlice, SharedArray, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/src/main.rs index dd9af04d1b..314b037234 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/complex_mul/src/main.rs @@ -17,7 +17,7 @@ //! //! Run: cargo oxide run complex_mul -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/src/main.rs index fbbe5150b6..c16dcef2b1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_aggregate/src/main.rs @@ -21,7 +21,7 @@ //! //! Run: cargo oxide run const_aggregate -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/src/main.rs index 3e46631a87..a2d4b18efc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_bool_dead_branch/src/main.rs @@ -4,7 +4,7 @@ //! Regression for generic branches controlled by an associated constant. use core::marker::PhantomData; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer, DeviceCopy}; use cuda_device::{DisjointSlice, DynamicSharedArray, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/src/main.rs index 05f649dde7..2afea93825 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_generic/src/main.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{cuda_module, device, kernel, launch_bounds, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/src/main.rs index dae9eaa082..4e156013a9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_table_lookup/src/main.rs @@ -45,7 +45,7 @@ //! //! Run: `cargo oxide run const_table_lookup` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/src/main.rs index 464417d905..9d2f0044f0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/const_tuple_table_lookup/src/main.rs @@ -37,7 +37,7 @@ //! //! Run: `cargo oxide run const_tuple_table_lookup` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/src/main.rs index 13699d90db..974c80fb92 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_index_from_end/src/main.rs @@ -19,7 +19,7 @@ //! Run with: //! CUDA_OXIDE_DUMP_MIR=1 cargo oxide run constant_index_from_end -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/src/main.rs index f575c5f970..87e7b1807e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory/src/main.rs @@ -14,7 +14,7 @@ //! Build and run with: //! cargo oxide run constant_memory -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{ConstantMemory, DisjointSlice, constant, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/src/main.rs index 5cc830e458..e065d0b3fd 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_coeffs/src/main.rs @@ -21,7 +21,7 @@ //! Build and run with: //! cargo oxide run constant_memory_coeffs -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{ConstantMemory, DisjointSlice, constant, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/src/main.rs index 4bb64fe912..45b8ffdb3d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_simple/src/main.rs @@ -8,7 +8,7 @@ //! Build and run with: //! cargo oxide run constant_memory_simple -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{ConstantMemory, DisjointSlice, constant, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/src/main.rs index 5a8d5783fc..f61e5716b1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/constant_memory_table/src/main.rs @@ -42,7 +42,7 @@ //! //! Run: `cargo oxide run constant_memory_table` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/src/main.rs index 1b5cf1e66a..47ef78eb45 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/coop_groups_demo/src/main.rs @@ -20,7 +20,7 @@ //! op/type matrix. The generated `coop_groups_demo.ptx` is also handy //! for inspecting how each kernel actually lowers. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer, LaunchConfig1D}; use cuda_device::cooperative_groups::{ ThreadGroup, WarpCollective, block_reduce, block_scan, coalesced_threads, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/src/main.rs index 2017fb65ed..b0d73e86bf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_aggregate_borrow/src/main.rs @@ -9,7 +9,7 @@ //! read-only methods. Runtime indexing into its small array fields must not //! force the aggregate into NVPTX local memory. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/src/main.rs index ac8bda154d..90efeb06ca 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/copy_nonoverlapping/src/main.rs @@ -19,7 +19,7 @@ //! Usage: //! cargo oxide run copy_nonoverlapping -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, SharedArray, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/src/main.rs index 088cb66596..8ec3f3a380 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/counted_barrier/src/main.rs @@ -26,7 +26,7 @@ //! Build and run with: //! cargo oxide run counted_barrier -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::barrier::{barrier_cta_arrive, barrier_cta_sync}; use cuda_device::{DisjointSlice, SharedArray, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/src/main.rs index ee84d89c02..dd4fe23738 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_small/src/main.rs @@ -14,7 +14,7 @@ //! Build and run with: //! cargo oxide run cp_async_small -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::async_copy::{ cp_async_ca_4, cp_async_ca_8, cp_async_ca_16, cp_async_ca_zfill_4, cp_async_ca_zfill_8, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/src/main.rs index b2a9d6b174..bb7c873a5d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cp_async_zfill/src/main.rs @@ -17,7 +17,7 @@ //! Build and run with: //! cargo oxide run cp_async_zfill -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::async_copy::{cp_async_ca_zfill_4, cp_async_commit_group, cp_async_wait_all}; use cuda_device::{DisjointSlice, SharedArray, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/src/main.rs index a1de359f63..e62b3144b5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_embedded/src/main.rs @@ -22,7 +22,7 @@ //! //! Run: cargo oxide run cross_crate_embedded -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use embedded_kernel_lib::kernels; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/src/main.rs index 36388bf446..34d9b76a7f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_kernel/src/main.rs @@ -32,7 +32,7 @@ //! cargo oxide run cross_crate_kernel //! ``` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; // Import the public kernel functions and their generated `_ptx_name` diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/src/main.rs index b10a5fdbd0..0de522d2d5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cross_crate_recursion/src/main.rs @@ -10,7 +10,7 @@ //! defined LOCALLY in this crate always compiled, which isolates the axis to "cross-crate + not //! inlinable", not the function body. See PR "pass -Zalways-encode-mir ...". -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/src/main.rs index 5150484d3b..cff252211b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_in_lib/src/main.rs @@ -48,7 +48,7 @@ //! cargo oxide run cuda_module_in_lib //! ``` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; use module_kernels::kernels; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/src/main.rs index ecdacf1082..d1162c1de3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cuda_module_nested/src/main.rs @@ -17,7 +17,7 @@ //! Build and run with: //! cargo oxide run cuda_module_nested -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/src/main.rs index 3152f7fae6..87a695465e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_f16x2/src/main.rs @@ -15,7 +15,7 @@ //! //! Run: cargo oxide run cvt_f16x2 -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::convert::cvt_f16x2_f32; use cuda_device::{DisjointSlice, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/src/main.rs index f2fe30c8fd..b9a825ecfb 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/cvt_packed/src/main.rs @@ -31,7 +31,7 @@ //! //! Run: cargo oxide run cvt_packed -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::convert::{ cvt_f16x2_f32, cvt_f32_bf16x2_hi, cvt_f32_bf16x2_lo, cvt_f32_f16x2_hi, cvt_f32_f16x2_lo, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/src/main.rs index deff084d07..e1beda3ea9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug-tests/src/main.rs @@ -41,7 +41,7 @@ //! ./debug-tests oob_index triggers a Rust bounds-check trap //! ./debug-tests null_deref triggers a null-pointer dereference -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{ ConstantMemory, DisjointSlice, SharedArray, constant, debug, gpu_assert, gpu_printf, kernel, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/src/main.rs index deceab0b39..9d0d9053a9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug/src/main.rs @@ -170,7 +170,7 @@ mod kernels { // ============================================================================= fn main() -> Result<(), Box> { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== GPU Debug & Utility Intrinsics Test (Unified) ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/src/main.rs index bab5eab83c..88fcdee2af 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/debug_pointer_locals/src/main.rs @@ -8,7 +8,7 @@ //! Run under cuda-gdb with: //! `CUDA_OXIDE_DEBUG=full cargo oxide debug debug_pointer_locals` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/src/main.rs index 5b4f1fe1cc..38b14208d5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_closures/src/main.rs @@ -322,7 +322,7 @@ mod kernels { fn main() { println!("=== Unified Compilation: Closures ===\n"); - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; let ctx = CudaContext::new(0).expect("Failed to create CUDA context"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/src/main.rs index 0deb545121..b12586cbc0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_ffi_test/src/main.rs @@ -511,7 +511,7 @@ fn build_pipeline() -> Result { // Uses cuda-driver to load the merged cubin, launch kernels, and verify results. // ============================================================================= -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use std::sync::Arc; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/src/main.rs index f3703af6cb..0583a5fdc6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_global/src/main.rs @@ -8,7 +8,7 @@ //! Build and run with: //! cargo oxide run device_global -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::kernel; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/src/main.rs index fa446fe363..60f511b016 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/device_panic_trap/src/main.rs @@ -18,7 +18,7 @@ //! driver reports as a launch failure. A launch that instead *succeeds* would //! mean the panic path fell through rather than trapping. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/src/main.rs index 11b1f27fee..1bb917f4c9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_from_raw_parts/src/main.rs @@ -24,7 +24,7 @@ //! wrote a constant, or that addressed the wrong element, fails the check //! rather than passing quietly. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, Runtime2DIndex, cuda_module, device, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/src/main.rs index 85625fe267..76b37495e9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/disjoint_slice_len/src/main.rs @@ -15,7 +15,7 @@ //! ``` //! //! Run: cargo oxide run disjoint_slice_len -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/src/main.rs index e502cda0a1..c48212973d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dotprod/src/main.rs @@ -25,7 +25,7 @@ //! Build and run with: //! cargo oxide run dotprod --arch sm_80 -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::dotprod::{dp2a_s32, dp2a_u32, dp4a_s32, dp4a_u32}; use cuda_device::{DisjointSlice, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/src/main.rs index d59612e2d3..974d89d346 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dpx_minmax_chains/src/main.rs @@ -14,7 +14,7 @@ //! //! Run: cargo oxide run dpx_minmax_chains -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/src/main.rs index 316fd51308..38296aab33 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/drop_glue/src/main.rs @@ -22,7 +22,7 @@ use core::mem::{ManuallyDrop, MaybeUninit}; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/src/main.rs index 0960a045ae..d752a6de32 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dst_metadata/src/main.rs @@ -14,7 +14,7 @@ //! Usage: //! cargo oxide run dst_metadata -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/src/main.rs index b0603a0ed2..3df807c48f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/dynamic_smem/src/main.rs @@ -26,7 +26,7 @@ //! Build and run with: //! cargo oxide run dynamic_smem -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, DynamicSharedArray, gpu_printf, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/src/main.rs index a1a83d0b50..0eb94779f9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/elect_leader/src/main.rs @@ -74,7 +74,7 @@ mod kernels { // ============================================================================= fn main() { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== elect.sync warp leader election (sm_90+) ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/src/main.rs index 785853b78b..4507a2610e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_abi_multi_payload/src/main.rs @@ -31,7 +31,7 @@ //! Run with: //! cargo oxide run enum_abi_multi_payload -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer, DeviceCopy}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/src/main.rs index 7d3d200096..ef6ec3c203 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_array_match/src/main.rs @@ -34,7 +34,7 @@ //! Run with: //! cargo oxide run enum_array_match -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, device, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/src/main.rs index 941a825e11..40049127ef 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_constant_provenance/src/main.rs @@ -9,7 +9,7 @@ //! static subobject, direct-tagged enums, and relocation-carrying enums nested //! inside struct, tuple, and array constants. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::kernel; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/src/main.rs index 348dafc884..0239ba88b5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_payload_addr/src/main.rs @@ -34,7 +34,7 @@ //! Each kernel reads its value back after mutating, so a write that landed in //! a copy shows up as an unchanged element rather than passing quietly. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, device, kernel, thread}; use std::time::Instant; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/src/main.rs index 0b20e5abe7..b5339d52ae 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_state_transitions/src/main.rs @@ -13,7 +13,7 @@ //! cargo oxide run enum_state_transitions //! CUDA_OXIDE_NO_OPT=1 cargo oxide run enum_state_transitions -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/src/main.rs index 4e37292a26..a101ec7f1a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/enum_table_lookup/src/main.rs @@ -41,7 +41,7 @@ //! //! Run: `cargo oxide run enum_table_lookup` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/src/main.rs index 83538ee75e..5239cf4ee4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ex2_approx_f16/src/main.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::float::ex2_approx_f16; use cuda_device::{DisjointSlice, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/src/main.rs index 1003adab19..c8751b906f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/exact_div_chunks/src/main.rs @@ -21,7 +21,7 @@ #![feature(core_intrinsics)] #![allow(internal_features)] -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/src/main.rs index 49ba3eb1ea..320096b78c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/export_name_policy/src/main.rs @@ -16,7 +16,7 @@ //! not be classified as generic merely because the MIR `FnDef` operand carries //! substitutions or because the FQDN contains `<`, `>`, or `::`. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/src/main.rs index 4850e874fb..75400d096b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_crate_closure/src/main.rs @@ -20,7 +20,7 @@ //! //! Run: cargo oxide run extern_crate_closure -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/src/main.rs index 309ce7548d..0dbde672b9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/extern_libdevice/src/main.rs @@ -24,7 +24,7 @@ //! Exits 0 on SUCCESS, 1 on FAIL. use core::marker::PhantomData; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, device, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/src/main.rs index 0d78067872..4cd16438ef 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16_stress/src/main.rs @@ -12,7 +12,7 @@ //! //! Run: cargo oxide run f16_stress -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/src/main.rs index bc20264607..b1f34607de 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f16x2_arith/src/main.rs @@ -3,7 +3,7 @@ //! End-to-end example for packed f16x2 arithmetic intrinsics. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::f16x2::{ abs_f16x2, add_f16x2, fma_f16x2, fma_ftz_f16x2, fma_ftz_relu_f16x2, fma_ftz_sat_f16x2, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/src/main.rs index b40854d4c0..49cf92233f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/f32x2_arith/src/main.rs @@ -3,7 +3,7 @@ //! End-to-end example for the SM100 packed f32x2 arithmetic family. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::f32x2::{ add_f32x2, add_ftz_f32x2, fma_f32x2, fma_ftz_f32x2, mul_f32x2, mul_ftz_f32x2, pack_f32x2, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/src/main.rs index f6c46412ac..40df592afe 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fcmp_ne_nan_smoke/src/main.rs @@ -6,7 +6,7 @@ // Minimal repro: float `!=` should be UNORDERED (x != x is TRUE for NaN). // Rust PartialEq::ne on floats is unordered. cuda-oxide lowered it to fcmp ONE // (ordered, FALSE for NaN), so x != x folded to false -> NaN handling broken. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/src/main.rs index ddbe90fad2..531e83470d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/field_array_assign/src/main.rs @@ -16,7 +16,7 @@ //! //! Run: cargo oxide run field_array_assign -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/src/main.rs index a8f31d8d14..22eee8a9d2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/float_rounding/src/main.rs @@ -31,7 +31,7 @@ //! //! Exits 0 on PASS, 1 on FAIL. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/src/main.rs index 958a72a1a5..392fcdc79f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fmaxmin_smoke/src/main.rs @@ -29,7 +29,7 @@ //! Build and run with: //! cargo oxide run fmaxmin_smoke -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/src/main.rs index f726fb5862..a1e592d7a0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fn_ptr_naming/src/main.rs @@ -17,7 +17,7 @@ //! Run with: //! cargo oxide run fn_ptr_naming -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/src/main.rs index 09d2a2fb32..a8f158a27d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/fp_special_literal_smoke/src/main.rs @@ -31,7 +31,7 @@ //! Build and run with: //! cargo oxide run fp_special_literal_smoke -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/src/main.rs index 08e0784125..e6d7150675 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/function_item_call/src/main.rs @@ -18,7 +18,7 @@ //! `call_once_decoy` proves that an ordinary function whose name contains //! trait-like text is not mistaken for a callable-trait shim. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, device, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/src/main.rs index 55426c2f0a..19f6030320 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/future_apis/src/main.rs @@ -304,7 +304,7 @@ mod kernels { // ============================================================================= fn main() -> Result<(), Box> { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== Future APIs Test (Unified) ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/src/main.rs index 23f1f9108a..248d5fe16f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm/src/main.rs @@ -13,7 +13,7 @@ //! Build and run with: //! cargo oxide run gemm -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/src/main.rs index f8e9a8d45b..577b817a93 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol/src/main.rs @@ -36,7 +36,7 @@ //! Build and run with: //! cargo oxide run gemm_sol -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::atomic::{AtomicOrdering, DeviceAtomicU32}; use cuda_device::barrier::{ @@ -5821,7 +5821,7 @@ fn run_benchmark_persistent( for _ in 0..WARMUP { let z = 0u32; unsafe { - cuda_core::simt::memory::memcpy_htod_async( + cuda_core::memory::memcpy_htod_async( dev_tile_counter.cu_deviceptr(), &z as *const u32, std::mem::size_of::(), @@ -5851,7 +5851,7 @@ fn run_benchmark_persistent( for _ in 0..ITERS { let z = 0u32; unsafe { - cuda_core::simt::memory::memcpy_htod_async( + cuda_core::memory::memcpy_htod_async( dev_tile_counter.cu_deviceptr(), &z as *const u32, std::mem::size_of::(), diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/src/main.rs index 4f1e2fd470..805b47f7ec 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/gemm_sol_final/src/main.rs @@ -22,7 +22,7 @@ //! - B: N×K f16, row-major (transposed storage, K contiguous) //! - C: M×N bf16 output, row-major (packed as u32 pairs) -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::barrier::{ Barrier, fence_proxy_async_shared_cta, mbarrier_arrive, mbarrier_arrive_cluster, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/src/main.rs index 8c659d964d..f772e29912 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics/src/main.rs @@ -8,7 +8,7 @@ //! The kernel calls generated coordinate, lane-mask, vote, and shuffle intrinsics //! directly. This covers the raw path instead of only `cuda-device` wrappers. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel}; use cuda_device::{ diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/src/main.rs index 0d29f842d9..25dd4dcc60 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_intrinsics_blackwell/src/main.rs @@ -17,7 +17,7 @@ //! //! cargo oxide run generated_intrinsics_blackwell -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{ DisjointSlice, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/src/main.rs index 9bd7a2f03f..3267e9e6a1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generated_ldmatrix/src/main.rs @@ -18,7 +18,7 @@ //! Build and run with: //! cargo oxide run generated_ldmatrix -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::shared::cvta_generic_to_shared_u32; use cuda_device::wmma::{ diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/src/main.rs index 013cdd4baa..543133fead 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/generic/src/main.rs @@ -22,7 +22,7 @@ //! //! We should see a PTX entry point for `scale` (or `scale_f32` if we add type info). -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; use std::ops::{Add, Mul}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/src/main.rs index 3a96e26c2d..cdaff2722c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap/src/main.rs @@ -27,7 +27,7 @@ use std::sync::Arc; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::atomic::{AtomicOrdering, DeviceAtomicU64}; use cuda_device::{DisjointSlice, kernel, thread}; @@ -273,7 +273,7 @@ impl GpuHashMap { let slots = DeviceBuffer::::zeroed(stream, capacity)?; unsafe { - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( slots.cu_deviceptr(), 0xFF, slots.num_bytes(), diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/bin/bench.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/bin/bench.rs index ad66f6359a..77e5fe3c2c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/bin/bench.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/bin/bench.rs @@ -36,7 +36,7 @@ use std::sync::Arc; use std::time::Instant; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use hashbrown::HashMap as HbMap; use hashmap_v2::*; @@ -96,13 +96,13 @@ unsafe fn reset_table_async( stream: &Arc, ) -> Result<(), Box> { unsafe { - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( map.ctrl.cu_deviceptr(), 0xFF, map.ctrl.num_bytes(), stream.cu_stream(), )?; - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( map.slots.cu_deviceptr(), 0xFF, map.slots.num_bytes(), diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/lib.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/lib.rs index 424e895fdc..678581d375 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/lib.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v2/src/lib.rs @@ -61,7 +61,7 @@ use std::sync::Arc; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaStream, DeviceBuffer}; use cuda_device::atomic::{AtomicOrdering, DeviceAtomicU32, DeviceAtomicU64}; use cuda_device::cooperative_groups::{ThreadGroup, WarpCollective, this_thread_block}; @@ -1142,13 +1142,13 @@ impl GpuSwissMap { let ctrl = DeviceBuffer::::zeroed(stream, capacity / GROUP)?; let slots = DeviceBuffer::::zeroed(stream, capacity)?; unsafe { - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( ctrl.cu_deviceptr(), 0xFF, ctrl.num_bytes(), stream.cu_stream(), )?; - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( slots.cu_deviceptr(), 0xFF, slots.num_bytes(), diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/bin/bench.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/bin/bench.rs index 7a8e5945de..2c65bd8b58 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/bin/bench.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/bin/bench.rs @@ -41,7 +41,7 @@ use std::sync::Arc; use std::time::Instant; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use hashbrown::HashMap as HbMap; use hashmap_v3::*; @@ -101,13 +101,13 @@ unsafe fn reset_table_async( stream: &Arc, ) -> Result<(), Box> { unsafe { - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( map.ctrl.cu_deviceptr(), 0xFF, map.ctrl.num_bytes(), stream.cu_stream(), )?; - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( map.slots.cu_deviceptr(), 0xFF, map.slots.num_bytes(), diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/lib.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/lib.rs index 22f0969e7c..6298d91977 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/lib.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hashmap_v3/src/lib.rs @@ -57,7 +57,7 @@ use std::sync::Arc; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaStream, DeviceBuffer}; use cuda_device::atomic::{AtomicOrdering, DeviceAtomicU32, DeviceAtomicU64}; use cuda_device::cooperative_groups::{ThreadGroup, WarpCollective, this_thread_block}; @@ -1069,13 +1069,13 @@ impl GpuSwissMap { let ctrl = DeviceBuffer::::zeroed(stream, capacity / GROUP)?; let slots = DeviceBuffer::::zeroed(stream, capacity)?; unsafe { - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( ctrl.cu_deviceptr(), 0xFF, ctrl.num_bytes(), stream.cu_stream(), )?; - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( slots.cu_deviceptr(), 0xFF, slots.num_bytes(), @@ -1379,13 +1379,13 @@ impl GpuSwissMap { let new_ctrl = DeviceBuffer::::zeroed(stream, new_capacity / GROUP)?; let new_slots = DeviceBuffer::::zeroed(stream, new_capacity)?; unsafe { - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( new_ctrl.cu_deviceptr(), 0xFF, new_ctrl.num_bytes(), stream.cu_stream(), )?; - cuda_core::simt::memory::memset_d8_async( + cuda_core::memory::memset_d8_async( new_slots.cu_deviceptr(), 0xFF, new_slots.num_bytes(), diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/src/main.rs index 4fbb97cfb8..fcb76b45c5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/hello_constant/src/main.rs @@ -11,7 +11,7 @@ //! Build and run with: //! cargo oxide run hello_constant -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::kernel; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/src/main.rs index 8dafaf4c98..75b82d0ad2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/helper_fn/src/main.rs @@ -12,7 +12,7 @@ //! Build and run with: //! cargo oxide run helper_fn -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, device, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/src/main.rs index 1e267a6268..3c5946cb7f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure/src/main.rs @@ -31,7 +31,7 @@ //! (`#[repr(C)]`) struct captures. use cuda_async::simt::device_operation::DeviceOperation; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_launch, cuda_launch_async, cuda_module, load_kernel_module}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/src/main.rs index 5d5989b2f4..8c1c5576a3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/host_closure_target_feature/src/main.rs @@ -23,7 +23,7 @@ use std::sync::Arc; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_module, load_kernel_module}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/src/main.rs index 3106b31652..e5d51c2ff9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/iket_trace/src/main.rs @@ -11,7 +11,7 @@ //! cargo oxide build iket_trace --arch sm_120 //! ``` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, iket, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/src/main.rs index 5888f2b09b..aed40c7828 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/index2d_const/src/main.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/src/main.rs index 1557e57f06..38c794f608 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/index_field_assign/src/main.rs @@ -31,7 +31,7 @@ //! Usage: //! cargo oxide run index_field_assign -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/src/main.rs index 037b086542..c9b22840d9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_intent/src/main.rs @@ -24,7 +24,7 @@ //! reaches LLVM as its own definition. Otherwise rustc folds the small ones //! into the kernel before any attribute could be observed. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, device, kernel}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/src/main.rs index 18238fd1f7..48795d93f7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/inline_ptx/src/main.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, ptx_asm}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/src/main.rs index c8e331e578..abc9883fb9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/integer_minmax/src/main.rs @@ -5,7 +5,7 @@ //! End-to-end example for scalar and packed integer min/max intrinsics (sm_90+). -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::i16x2::{ max_relu_s16x2, max_s16x2, max_u16x2, min_relu_s16x2, min_s16x2, min_u16x2, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/src/main.rs index adf0c23f65..140955dcd3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/interior_mutability/src/main.rs @@ -13,7 +13,7 @@ //! cargo oxide run interior_mutability //! CUDA_OXIDE_NO_OPT=1 cargo oxide run interior_mutability -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/src/main.rs index 3c0fd45658..d77b163752 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/lanemask_scan/src/main.rs @@ -114,7 +114,7 @@ mod kernels { // ============================================================================= fn main() { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== Lane-Position Masks & Warp Prefix Sum ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/src/main.rs index b9fc05e8cf..e65167feb8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_fadd/src/main.rs @@ -1,7 +1,7 @@ // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{ DisjointSlice, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/src/main.rs index be0858fa1a..74eb386556 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_atomic_rmw_cas/src/main.rs @@ -1,7 +1,7 @@ // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{ DisjointSlice, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/src/main.rs index c2ab6b9545..f79fa3613a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/legacy_nvvm_pointer_shapes/src/main.rs @@ -10,7 +10,7 @@ //! and `u32`. Together, these cases check that legacy typed pointers work //! throughout a function, not only at loads and stores. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/src/main.rs index 1c97759edd..8cc396fa5b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/libdevice_math/src/main.rs @@ -9,7 +9,7 @@ //! example checks SwiGLU plus `sin`, `exp`, `sqrt`, `atan`, `atan2`, `acos`, //! and `tan` on both legacy and modern NVVM targets. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/src/main.rs index aeebfe45ac..8b4bd44e53 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/libm_math/src/main.rs @@ -23,7 +23,7 @@ //! Run with: //! cargo oxide run libm_math -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/src/main.rs index 12222c65d3..a17ad8431c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_generic/src/main.rs @@ -9,7 +9,7 @@ //! instead of `#[cuda_module]`. It keeps the explicit API covered while the //! typed embedded-module API is the preferred ergonomic path. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_launch, load_kernel_module}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/src/main.rs index 43856a4012..9b249fb53d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/manual_launch_libdevice/src/main.rs @@ -5,7 +5,7 @@ //! Manual low-level launch API regression test for NVVM IR/libdevice artifacts. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_launch, load_kernel_module}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/src/main.rs index 29d7d1ed7a..76e1ff293b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/map_sum/src/main.rs @@ -32,7 +32,7 @@ //! Usage: //! cargo oxide run map_sum -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/src/main.rs index 5c6f7e97df..27e4f4185f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_atan/src/main.rs @@ -15,7 +15,7 @@ //! //! Exits 0 on PASS, 1 on FAIL. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/src/main.rs index 85131b60aa..8714b5d7a1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_hyperbolic/src/main.rs @@ -32,7 +32,7 @@ // style lints that do not improve a numeric smoke test. #![allow(clippy::too_many_arguments, clippy::type_complexity)] -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/src/main.rs index 78faf4af2e..5893ec0b3a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_no_mir_inline/src/main.rs @@ -35,7 +35,7 @@ //! //! Exits 0 on SUCCESS, 1 on FAIL. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/src/main.rs index 89544b519a..51e7953ee5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_tan/src/main.rs @@ -23,7 +23,7 @@ //! //! Exits 0 on PASS, 1 on FAIL. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::{cuda_module, ltoir}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/src/main.rs index 9848dabb43..335448298d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mathdx_ffi_test/src/main.rs @@ -873,7 +873,7 @@ fn build_pipeline(mathdx_root: &Path) -> Result { // Host-side test infrastructure // ============================================================================= -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use std::sync::Arc; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/src/main.rs index 90cb8dee3d..3c83ce4c84 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mcast_barrier_test/src/main.rs @@ -13,7 +13,7 @@ //! Build and run: //! cargo oxide run mcast_barrier_test -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::barrier::{ Barrier, fence_proxy_async_shared_cta, mbarrier_arrive_cluster, mbarrier_init, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/src/main.rs index d5effc1497..ab6bb8bf59 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mem_swap/src/main.rs @@ -20,7 +20,7 @@ //! cargo oxide run mem_swap //! CUDA_OXIDE_NO_OPT=1 cargo oxide run mem_swap -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/src/main.rs index 4a1ccfe81a..d927a1f103 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mir_projected_call_destination/src/main.rs @@ -45,7 +45,7 @@ //! cargo oxide run mir_projected_call_destination use core::intrinsics::mir::*; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/src/main.rs index 9c52f8c0fd..852eff1a8b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/mma_mxf8f6f4/src/main.rs @@ -26,7 +26,7 @@ //! Build and run with: //! cargo oxide run mma_mxf8f6f4 --arch sm_120a -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread, wmma}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/src/main.rs index ffb8bad124..d007f4f61d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ne_bytes_transmute/src/main.rs @@ -13,7 +13,7 @@ // Kernels lock in both directions for u32 and f32, plus `f32::to_bits`, // a same-width scalar transmute that must stay on the plain bitcast path. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/src/main.rs index 5472665507..223fbf5123 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/nested_index_assignment/src/main.rs @@ -12,7 +12,7 @@ //! through it instead of rejecting the assignment before the generic //! projection walker can handle it. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/src/main.rs index 3eb12d458d..06901ef3e9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/numeric_stress/src/main.rs @@ -14,7 +14,7 @@ //! //! Run: cargo oxide run numeric_stress -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/README.md b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/README.md index 2a11e96506..6a544416aa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/README.md +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/README.md @@ -1,7 +1,7 @@ # nvls_all_reduce Single-process NVLS (NVLink SHARP) all-reduce across every multicast-capable -GPU in the machine, built on the `cuda_core::simt::vmm` multicast wrappers +GPU in the machine, built on the `cuda_core::vmm` multicast wrappers (`MulticastObject`, `Mapping::new_multicast`). ## What it demonstrates @@ -54,7 +54,7 @@ integers, so the sums are exact and order-independent). ## See also -- `cuda-core/tests/simt_vmm_multicast.rs` in cutile-rs: host-side team plumbing test +- `cuda-core/tests/vmm_multicast.rs` in cutile-rs: host-side team plumbing test (bind/map/unbind lifecycle) that runs without issuing `multimem`. - PTX ISA section 9.7.13.4 (`multimem.ld_reduce`, `multimem.st`, `multimem.red`). diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/src/main.rs index a38077d7c3..7c8771b558 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/nvls_all_reduce/src/main.rs @@ -26,8 +26,8 @@ use cuda_core::CudaContext; use cuda_core::IntoResult; -use cuda_core::simt::LaunchConfig; -use cuda_core::simt::vmm; +use cuda_core::LaunchConfig; +use cuda_core::vmm; use cuda_device::{cuda_module, kernel, ptx_asm}; use std::mem::MaybeUninit; use std::sync::Arc; @@ -149,7 +149,7 @@ fn main() { let input: Vec = (0..ELEMS).map(|i| input_value(g, i)).collect(); let stream = ctx.default_stream(); unsafe { - cuda_core::simt::memory::memcpy_htod_async( + cuda_core::memory::memcpy_htod_async( views[g].0.base(), input.as_ptr(), bytes, @@ -197,7 +197,7 @@ fn main() { let mut result = vec![0f32; ELEMS]; let stream = ctx.default_stream(); unsafe { - cuda_core::simt::memory::memcpy_dtoh_async( + cuda_core::memory::memcpy_dtoh_async( result.as_mut_ptr(), views[g].0.base(), bytes, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/src/main.rs index 4267dcb23c..57c45246b7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_transmute/src/main.rs @@ -25,7 +25,7 @@ use core::mem; use core::ptr; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/src/main.rs index 155eee9460..f2283c1ea9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_ref_unwrap_or/src/main.rs @@ -30,7 +30,7 @@ //! Run with: //! cargo oxide run option_ref_unwrap_or -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/src/main.rs index 658c5fa9d5..dae19c9b04 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/option_unwrap_trap/src/main.rs @@ -9,7 +9,7 @@ //! which on the GPU means the kernel must trap and the launch must fail. //! If the launch succeeds instead, the panic path was compiled away. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/src/main.rs index c8019f6b74..ec4d88d8c3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ord_cmp/src/main.rs @@ -21,7 +21,7 @@ //! //! Run: cargo oxide run ord_cmp -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/src/main.rs index 0b857b8fbb..ef18af3bd7 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_aggregate_abi/src/main.rs @@ -28,7 +28,7 @@ //! `b` at byte offset 2. The padding byte itself is intentionally not checked: //! Rust does not guarantee a stable value for padding bytes. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{SharedArray, cuda_module, device, kernel}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/src/main.rs index 17eae1e0a8..520d69662c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/packed_atomic_add/src/main.rs @@ -10,7 +10,7 @@ //! old values for each 16-bit half independently because PTX does not promise //! that the two returned halves form one coherent 32-bit snapshot. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::atomic::{atom_add_bf16x2, atom_add_f16x2}; use cuda_device::{kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/src/main.rs index ff825f45fc..229cc59b56 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/padded_constants/src/main.rs @@ -27,7 +27,7 @@ //! Run with: //! cargo oxide run padded_constants -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/src/main.rs index efccbe1b28..34195693cc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/pinned_overlap/src/main.rs @@ -12,7 +12,7 @@ use std::error::Error; use std::sync::Arc; use std::time::{Duration, Instant}; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaEvent, CudaStream, DeviceBuffer, PinnedHostBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/src/main.rs index 6bc95a1793..500ac71691 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/place_read_fallbacks/src/main.rs @@ -18,7 +18,7 @@ //! //! Run: cargo oxide run place_read_fallbacks -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, device, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/src/main.rs index 0d5d196cbc..bc2521704b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/primitive_stress/src/main.rs @@ -25,7 +25,7 @@ //! //! Run: `cargo oxide run primitive_stress` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/src/main.rs index 5900191f64..7891e0621a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/printf/src/main.rs @@ -204,7 +204,7 @@ mod kernels { // ============================================================================= fn main() -> Result<(), Box> { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== GPU Printf Test (Unified) ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/src/main.rs index 1f0cc06a07..731f1b01a8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/projected_place_read/src/main.rs @@ -14,7 +14,7 @@ //! //! Run: cargo oxide run projected_place_read -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, device, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/src/main.rs index f80c309259..75e4cb7a90 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_copy/src/main.rs @@ -18,7 +18,7 @@ //! cargo oxide run ptr_copy //! CUDA_OXIDE_NO_OPT=1 cargo oxide run ptr_copy -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/src/main.rs index 5da1ff8bb5..62ce6bacc6 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_offset_from/src/main.rs @@ -13,7 +13,7 @@ //! offsets by the pointee type, retain pointer mutability through libcore's cast, //! and leave zero-sized pointees stationary. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/src/main.rs index e3fba3047f..88d591bcaf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ptr_without_provenance/src/main.rs @@ -8,7 +8,7 @@ //! raw address exactly; an old Debug-string byte parser mis-decoded these //! partially-initialized constant bytes. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/src/main.rs index eb1675311b..81e50df688 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/reborrow/src/main.rs @@ -35,7 +35,7 @@ #![feature(reborrow)] -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/src/main.rs index 420de7f079..1cefb4e5fa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_f32/src/main.rs @@ -77,7 +77,7 @@ mod kernels { // ============================================================================= fn main() { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== redux.sync f32 family (Blackwell family 10x) ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/src/main.rs index 6bdc88c801..b7ec14f342 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_minmax/src/main.rs @@ -126,7 +126,7 @@ mod kernels { // ============================================================================= fn main() { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== redux.sync integer family (sm_80+) ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/src/main.rs index fdce5eeddd..4604acb2ad 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/redux_sum/src/main.rs @@ -74,7 +74,7 @@ mod kernels { // ============================================================================= fn main() { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== redux.sync.add Warp Reduction (sm_80+) ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/src/main.rs index aefcae951f..cdabb3d269 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_index_projections/src/main.rs @@ -32,7 +32,7 @@ * projections, returning the field's base address). */ -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread, warp}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/src/main.rs index 5bc36bed83..bc50a9120d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/ref_operand_mul/src/main.rs @@ -22,7 +22,7 @@ //! //! Run: cargo oxide run ref_operand_mul -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_host::cuda_module; use std::sync::Arc; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/src/main.rs index 36f3678093..2568dfe2a9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_align_block_args/src/main.rs @@ -18,7 +18,7 @@ //! //! Run: `cargo oxide run repr_align_block_args` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/src/main.rs index 7ff826c025..0ef5c34b07 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_transparent_abi/src/main.rs @@ -13,7 +13,7 @@ use core::marker::PhantomData; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{Uniform, cuda_module, device, kernel}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/src/main.rs index d71f86e0c5..a268c968ec 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/repr_u32_enum_stride/src/main.rs @@ -52,7 +52,7 @@ * cargo oxide run repr_u32_enum_stride */ -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer, DeviceCopy}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/src/main.rs index ff14f911b2..02449c809e 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/row_width_slice/src/main.rs @@ -31,7 +31,7 @@ //! //! Run: cargo oxide run row_width_slice -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/src/main.rs index bb566b6bc5..46a5a3fc25 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/rustlantis-smoke/src/main.rs @@ -34,7 +34,7 @@ //! cargo oxide run rustlantis-smoke use core::intrinsics::mir::*; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/src/main.rs index 8674c63f1c..c3c937cbc2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/scoped_atomic_load_store/src/main.rs @@ -34,7 +34,7 @@ //! Build and run with: //! cargo oxide run scoped_atomic_load_store --materialize-cubin -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/src/main.rs index b62ec4c4d1..f614ec9cc3 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/select_unpredictable/src/main.rs @@ -24,7 +24,7 @@ //! Usage: //! cargo oxide run select_unpredictable -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/src/main.rs index ed742c6bf6..81744c4132 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant/src/main.rs @@ -17,7 +17,7 @@ #![allow(internal_features)] use core::intrinsics::mir::*; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/src/main.rs index aab836ad43..b003b6946f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/set_discriminant_niche/src/main.rs @@ -16,7 +16,7 @@ use core::intrinsics::mir::*; use core::num::NonZeroU32; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer, DeviceCopy}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/src/main.rs index a5ae803dc3..002d1f3b1a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_debug/src/main.rs @@ -7,7 +7,7 @@ //! Persistent AS3 debug-info fixture for cuda-gdb/T27. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::barrier::Barrier; use cuda_device::{DisjointSlice, SharedArray, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/src/main.rs index 6b25119cb0..0dd24011ab 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_memory_helper/src/main.rs @@ -7,7 +7,7 @@ //! `inline(never)` requests a MIR call boundary; inspect generated code to //! determine whether the backend also keeps the calls. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DynamicSharedArray, SharedPtr, barrier::Barrier}; use cuda_device::{cuda_module, kernel, launch_bounds, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/src/main.rs index 12ba608b2b..8378f0c4f2 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_api/src/main.rs @@ -30,7 +30,7 @@ //! Usage: //! cargo oxide run shared_ptr_api -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::shared::cvta_generic_to_shared_u32; use cuda_device::{DynamicSharedArray, SharedArray, SharedPtr, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/src/main.rs index bc9bbac296..e0d8362744 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_ptr_transmute/src/main.rs @@ -45,7 +45,7 @@ #![allow(static_mut_refs)] -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, SharedArray, cuda_module, device, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/src/main.rs index d70b97e58d..c402529f99 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_slice_unsize/src/main.rs @@ -22,7 +22,7 @@ #![allow(static_mut_refs)] -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, SharedArray, device, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/src/main.rs index edadf18425..1941d2d3a1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shared_stage_select/src/main.rs @@ -24,7 +24,7 @@ //! //! Run: `cargo oxide run shared_stage_select` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, SharedArray, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/src/main.rs index 7852b13c0f..1f82d5374d 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sharedmem/src/main.rs @@ -24,7 +24,7 @@ //! Build and run with: //! cargo oxide run sharedmem -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, SharedArray, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/src/main.rs index c25cc2b641..2f3e326536 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/shuffle_64/src/main.rs @@ -126,7 +126,7 @@ mod kernels { const WARP: usize = 32; fn main() { - use cuda_core::simt::LaunchConfig; + use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; println!("=== 64-bit warp shuffle (u64 / f64) ===\n"); diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/src/main.rs index 99fa6d3b48..d912a46282 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_from_raw_parts_cast/src/main.rs @@ -20,7 +20,7 @@ //! Usage: //! cargo oxide run slice_from_raw_parts_cast -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, SharedArray, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/src/main.rs index 1f8b0a9b52..66c6f7ccda 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_get_mut/src/main.rs @@ -42,7 +42,7 @@ * address through fat-pointer deref"). */ -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/src/main.rs index a7d7ca1c3b..fff2c5c707 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_index_bounds_check/src/main.rs @@ -14,7 +14,7 @@ //! or the launch must fail (thread trapped). //! If the sentinel is overwritten, the kernel performed an out-of-bounds global read. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/src/main.rs index 5256f4f31f..4fab01a5c9 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_iterators/src/main.rs @@ -20,7 +20,7 @@ //! cargo oxide run slice_iterators //! CUDA_OXIDE_NO_OPT=1 cargo oxide run slice_iterators -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/src/main.rs index 9dd1471cd8..c2ffe061cb 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/slice_reslice/src/main.rs @@ -12,7 +12,7 @@ // pointer with `Rvalue::Aggregate(AggregateKind::RawPtr(..), [data_ptr, len])`. // The importer had no arm for that aggregate kind, so any kernel that passed // a sub-slice to a helper function failed to compile. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/src/main.rs index 02f3142588..d48de0e790 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/small_type_ffi_test/src/main.rs @@ -336,7 +336,7 @@ fn build_pipeline() -> Result { // the results. // ============================================================================= -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use std::sync::Arc; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/src/main.rs index 45c9b4ba13..4216c4f43f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_fp8/src/main.rs @@ -8,7 +8,7 @@ //! See the PTX ISA's "Matrix Fragments for sparse mma.m16n8k64" for the layout. //! `--probe` additionally compares candidate layouts on the current GPU. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread, wmma}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/src/main.rs index 7b02c14e88..3e939edca8 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/sparse_mma_ordered_float/src/main.rs @@ -21,7 +21,7 @@ //! lane's metadata register also changes the result; //! - values stay small (A<=7, B<=8, C<=31, sums < 1024) so f16, bf16, and //! tf32 all accumulate exactly and the host reference is integer math. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread, wmma}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/src/main.rs index 4cdde3d73a..58e7a5b3de 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/split_at_mut/src/main.rs @@ -21,7 +21,7 @@ //! Usage: //! cargo oxide run split_at_mut -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/src/main.rs index ea50b15c3f..c1b2c09974 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_addend/src/main.rs @@ -11,7 +11,7 @@ //! //! Run: `cargo oxide run static_slice_addend` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::kernel; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/src/main.rs index 0443d1661b..158eada8e4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/static_slice_unsize/src/main.rs @@ -10,7 +10,7 @@ //! //! Run: `cargo oxide run static_slice_unsize` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::kernel; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/src/main.rs index 544c5e9714..e189c7782b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/step_by/src/main.rs @@ -23,7 +23,7 @@ //! //! Run: cargo oxide run step_by -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/src/main.rs index 6a3bdca1b0..9c0acc0e8b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_constant_provenance/src/main.rs @@ -9,7 +9,7 @@ //! metadata word. The importer must preserve both pieces when the constant is //! materialized for GPU code. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/src/main.rs index c94cc5edf4..d317d8dc13 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/struct_field_layout/src/main.rs @@ -25,7 +25,7 @@ //! //! Run: `cargo oxide run struct_field_layout` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/src/main.rs index f05dd15c0c..6c87da4f20 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/subslice_projection/src/main.rs @@ -22,7 +22,7 @@ * cargo oxide pipeline subslice_projection */ -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/src/main.rs index 8fb1f1e5d4..f8cc1a2e68 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/switchint_128bit/src/main.rs @@ -25,7 +25,7 @@ //! Usage: //! cargo oxide run switchint_128bit -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/src/main.rs index 93b01ee4b4..bf9dc33c5f 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/swizzle_smem/src/main.rs @@ -12,7 +12,7 @@ //! Build and run with: //! cargo oxide run swizzle_smem -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, SharedArray, kernel, swizzle::Swizzle, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/src/main.rs index acb06ddc36..c0a8b831c0 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05/src/main.rs @@ -32,7 +32,7 @@ //! Build and run with: //! cargo oxide run tcgen05 -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer, sys}; use cuda_device::barrier::Barrier; use cuda_device::shared::{SharedArray, cvta_generic_to_shared_offset}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/src/main.rs index 88fd1e2778..b1a8b21e82 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tcgen05_matmul/src/main.rs @@ -10,7 +10,7 @@ //! Build and run with: //! cargo oxide run tcgen05_matmul -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{ CudaContext, CudaStream, DeviceBuffer, sys::{ diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/src/main.rs index 87fa66fa63..d0a37f3383 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tiled_gemm/src/main.rs @@ -15,7 +15,7 @@ //! Build and run with: //! cargo oxide run tiled_gemm -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, SharedArray, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/src/main.rs index aa21c06446..e0028246fa 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_copy/src/main.rs @@ -22,7 +22,7 @@ //! Build and run with: //! cargo oxide run tma_copy -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{ CudaContext, CudaStream, DeviceBuffer, sys::{ diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/src/main.rs index 5a1e325a5d..58805648dc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tma_multicast/src/main.rs @@ -28,7 +28,7 @@ //! Build and run with: //! cargo oxide run tma_multicast -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{ CudaContext, CudaStream, DeviceBuffer, sys::{ diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/src/main.rs index 2c3dbba3c6..fde67b4e40 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/transmute_scalar_struct/src/main.rs @@ -18,7 +18,7 @@ //! //! Run: cargo oxide run transmute_scalar_struct -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/src/main.rs index e95958c280..7cced6c01b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_array_provenance/src/main.rs @@ -10,7 +10,7 @@ //! //! Run: `cargo oxide run tuple_array_provenance` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/src/main.rs index e167273513..49f046b9c1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_constant_provenance/src/main.rs @@ -3,7 +3,7 @@ //! Regression for pointer provenance in a direct tuple constant. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/src/main.rs index 4fd3d31fab..6148e7b040 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_field_lookup/src/main.rs @@ -28,7 +28,7 @@ //! //! Run: `cargo oxide run tuple_field_lookup` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/src/main.rs index 733e2f727d..e9a75c72e1 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/tuple_return/src/main.rs @@ -20,7 +20,7 @@ //! Build and run with: //! cargo oxide run tuple_return -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/src/main.rs index 50c2279e20..cdc68b231b 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unaligned_memory/src/main.rs @@ -12,7 +12,7 @@ //! cargo oxide run unaligned_memory //! CUDA_OXIDE_NO_OPT=1 cargo oxide run unaligned_memory -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/src/main.rs index 89e954f0f1..760f1a27ea 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unchecked_indexing/src/main.rs @@ -39,7 +39,7 @@ //! Build and run with: //! cargo oxide run unchecked_indexing -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/src/main.rs index 6e68befde0..8e8514c3de 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/uninit_const/src/main.rs @@ -14,7 +14,7 @@ //! Run: cargo oxide run uninit_const use core::mem::MaybeUninit; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/src/main.rs index b3d340c3a1..d563abae45 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/union_aggregate/src/main.rs @@ -11,7 +11,7 @@ //! passing a union through an ordinary device function. It also checks that //! an over-aligned union keeps its size and array stride. -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/src/main.rs index 37ecf93b63..2277bcdc2a 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_bounds_check/src/main.rs @@ -6,7 +6,7 @@ //! `#[unroll]` must preserve checked indexing and division-by-zero checks. //! Run: cargo oxide run unroll_bounds_check -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/src/main.rs index 2469ed630a..9265bf3acf 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/unroll_smoke/src/main.rs @@ -27,7 +27,7 @@ //! //! Run: cargo oxide run unroll_smoke -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/src/main.rs index 01fb68414b..75e740b7cc 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/vecadd/src/main.rs @@ -20,7 +20,7 @@ // No #![cfg_attr(cuda_device, no_std)] - this compiles as ONE unit! -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/src/main.rs index 255b16ace7..9861b39880 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/vectorization/src/main.rs @@ -14,7 +14,7 @@ //! //! Run: `cargo oxide run vectorization` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{access, cuda_module}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/src/main.rs index 1e70397774..1e80bd6c30 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/volatile_memory/src/main.rs @@ -5,7 +5,7 @@ //! //! Run: `cargo oxide run volatile_memory` -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/src/main.rs index 3cf6f60042..034265603c 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/warp_reduce/src/main.rs @@ -14,7 +14,7 @@ //! Build and run with: //! cargo oxide run warp_reduce -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::cooperative_groups::{ ThreadGroup, block_reduce, block_scan, ops::Sum, this_thread_block, diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/src/main.rs index faa4e622a9..090ab40ee5 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/wgmma/src/main.rs @@ -16,7 +16,7 @@ //! Build and run with: //! cargo oxide run wgmma -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, CudaStream, DeviceBuffer}; use cuda_device::shared::SharedArray; use cuda_device::wgmma::{make_smem_desc, wgmma_commit_group, wgmma_fence, wgmma_wait_group}; diff --git a/cuda-oxide/cuda-oxide-book/appendix/api-quick-reference.md b/cuda-oxide/cuda-oxide-book/appendix/api-quick-reference.md index cc90fe89a5..a502b77123 100644 --- a/cuda-oxide/cuda-oxide-book/appendix/api-quick-reference.md +++ b/cuda-oxide/cuda-oxide-book/appendix/api-quick-reference.md @@ -524,7 +524,7 @@ N_COLS must be a power of 2 in the range [32, 512]. ### Typed Synchronous ```rust -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; let ctx = CudaContext::new(0).unwrap(); diff --git a/cuda-oxide/cuda-oxide-book/async-programming/the-device-operation-model.md b/cuda-oxide/cuda-oxide-book/async-programming/the-device-operation-model.md index 1a6d6e14db..31e9492de7 100644 --- a/cuda-oxide/cuda-oxide-book/async-programming/the-device-operation-model.md +++ b/cuda-oxide/cuda-oxide-book/async-programming/the-device-operation-model.md @@ -75,7 +75,7 @@ returns a recipe instead of cooking immediately: ```rust use cuda_async::simt::device_context::init_device_contexts; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; // One-time setup: create a stream pool for scheduling init_device_contexts(0, 1)?; @@ -298,7 +298,7 @@ until the `ExecutionContext` is available: ```rust use cuda_async::simt::device_operation::{value, with_context}; -use cuda_core::simt::memory::{malloc_async, memcpy_htod_async}; +use cuda_core::memory::{malloc_async, memcpy_htod_async}; fn h2d(host_data: Vec) -> impl DeviceOperation> { with_context(move |ctx| { diff --git a/cuda-oxide/cuda-oxide-book/compiler/architecture-overview.md b/cuda-oxide/cuda-oxide-book/compiler/architecture-overview.md index 32fcf73dbc..8de608096b 100644 --- a/cuda-oxide/cuda-oxide-book/compiler/architecture-overview.md +++ b/cuda-oxide/cuda-oxide-book/compiler/architecture-overview.md @@ -138,7 +138,7 @@ cuda-oxide is split into focused crates. Here is every one and its role: | `cuda-device` | Device-side API: intrinsics, `DisjointSlice`, barriers, shared memory, warp ops | | `cuda-macros` | Proc macros: `#[kernel]`, `#[device]` | | `cuda-host` | Host-side typed module loading and launch helpers | -| `cuda-core` | Shared with cutile-rs: safe Driver API bindings; SIMT surface under `cuda_core::simt` | +| `cuda-core` | Shared with cutile-rs: safe Driver API bindings; shared context, stream and buffer types | | `cuda-core-derive` | Shared with cutile-rs: `#[derive(DeviceCopy)]` proc-macro for `cuda-core` | | `cuda-async` | Shared with cutile-rs: `DeviceOperation` model and combinators under `cuda_async::simt` | | `cuda-bindings` | Shared with cutile-rs: FFI to the CUDA driver; `libcuda` is loaded at run time | diff --git a/cuda-oxide/cuda-oxide-book/getting-started/hello-gpu.md b/cuda-oxide/cuda-oxide-book/getting-started/hello-gpu.md index 3a4ff4ec5e..f3fb9bcefe 100644 --- a/cuda-oxide/cuda-oxide-book/getting-started/hello-gpu.md +++ b/cuda-oxide/cuda-oxide-book/getting-started/hello-gpu.md @@ -213,7 +213,7 @@ Here's the generated async vecadd template (with minor formatting edits for read ```rust use cuda_async::simt::device_context::init_device_contexts; use cuda_async::simt::device_operation::DeviceOperation; -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_device::{DisjointSlice, kernel, thread}; use cuda_host::cuda_module; @@ -234,7 +234,7 @@ mod kernels { #[tokio::main] async fn main() -> Result<(), Box> { use cuda_async::simt::device_box::DeviceBox; - use cuda_core::simt::memory::{malloc_async, memcpy_dtoh_async, memcpy_htod_async}; + use cuda_core::memory::{malloc_async, memcpy_dtoh_async, memcpy_htod_async}; use std::mem; // 1. Initialize the device context map (default device 0, 1 device). diff --git a/cuda-oxide/cuda-oxide-book/gpu-programming/closures-and-generics.md b/cuda-oxide/cuda-oxide-book/gpu-programming/closures-and-generics.md index 7055e8100c..e63121abb7 100644 --- a/cuda-oxide/cuda-oxide-book/gpu-programming/closures-and-generics.md +++ b/cuda-oxide/cuda-oxide-book/gpu-programming/closures-and-generics.md @@ -63,7 +63,7 @@ forces the concrete instantiation and lets the loader look up the matching PTX entry point: ```rust -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; // SAFETY: config is 1D and both buffers cover every launched index. unsafe { diff --git a/cuda-oxide/cuda-oxide-book/gpu-programming/execution-model.md b/cuda-oxide/cuda-oxide-book/gpu-programming/execution-model.md index 7694d271f5..476b5bb6bb 100644 --- a/cuda-oxide/cuda-oxide-book/gpu-programming/execution-model.md +++ b/cuda-oxide/cuda-oxide-book/gpu-programming/execution-model.md @@ -160,7 +160,7 @@ for architecture-specific SM resource limits and occupancy calculations. On the host side, `LaunchConfig` tells the runtime how to shape the grid: ```rust -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; // Quick 1D launch: 256 threads per block, enough blocks to cover N elements let cfg = LaunchConfig::for_num_elems(N as u32); diff --git a/cuda-oxide/cuda-oxide-book/gpu-programming/launching-kernels.md b/cuda-oxide/cuda-oxide-book/gpu-programming/launching-kernels.md index 8a6b94844f..ba0bc04941 100644 --- a/cuda-oxide/cuda-oxide-book/gpu-programming/launching-kernels.md +++ b/cuda-oxide/cuda-oxide-book/gpu-programming/launching-kernels.md @@ -53,7 +53,7 @@ PreparedLaunch -> safe launch of exactly K GPU execution can still overlap the host until you synchronize. ```rust -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; use cuda_core::{CudaContext, DeviceBuffer}; use cuda_device::{DisjointSlice, cuda_module, kernel, thread}; @@ -532,7 +532,7 @@ explains why this can differ from the normal LLVM-to-PTX path. `LaunchConfig` specifies the grid shape: ```rust -use cuda_core::simt::LaunchConfig; +use cuda_core::LaunchConfig; let config = LaunchConfig { grid_dim: (num_blocks, 1, 1), diff --git a/cuda-oxide/cuda-oxide-book/gpu-programming/virtual-memory-and-peer-access.md b/cuda-oxide/cuda-oxide-book/gpu-programming/virtual-memory-and-peer-access.md index d7bbc9a06f..77fd37a9ac 100644 --- a/cuda-oxide/cuda-oxide-book/gpu-programming/virtual-memory-and-peer-access.md +++ b/cuda-oxide/cuda-oxide-book/gpu-programming/virtual-memory-and-peer-access.md @@ -26,12 +26,12 @@ This chapter covers: :::{seealso} The complete integration test is available in -[`cuda-core/tests/simt_vmm_p2p.rs`](https://github.com/NVIDIA/cuda-rust/blob/main/cuda-core/tests/simt_vmm_p2p.rs). +[`cuda-core/tests/vmm_p2p.rs`](https://github.com/NVIDIA/cuda-rust/blob/main/cuda-core/tests/vmm_p2p.rs). The corresponding implementations are: -* [`cuda-core/src/simt/vmm.rs`](https://github.com/NVIDIA/cuda-rust/blob/main/cuda-core/src/simt/vmm.rs) -* [`cuda-core/src/simt/peer.rs`](https://github.com/NVIDIA/cuda-rust/blob/main/cuda-core/src/simt/peer.rs) +* [`cuda-core/src/vmm.rs`](https://github.com/NVIDIA/cuda-rust/blob/main/cuda-core/src/vmm.rs) +* [`cuda-core/src/peer.rs`](https://github.com/NVIDIA/cuda-rust/blob/main/cuda-core/src/peer.rs) ::: ## VMM and P2P solve different problems @@ -83,7 +83,7 @@ to access each other directly. Always query support before enabling peer access: ```rust -use cuda_core::simt::peer; +use cuda_core::peer; use cuda_core::{CudaContext, DriverError}; fn check_peer_access() -> Result<(), DriverError> { @@ -114,7 +114,7 @@ Use `peer::enable_peer_access` to allow one context to access memory associated with another device: ```rust -use cuda_core::simt::peer; +use cuda_core::peer; use cuda_core::{CudaContext, DriverError}; fn enable_bidirectional_peer_access() -> Result<(), DriverError> { @@ -183,7 +183,7 @@ of the device's allocation granularity. Use `allocation_granularity` and `align_size` before allocating: ```rust -use cuda_core::simt::vmm; +use cuda_core::vmm; use cuda_core::{CudaContext, DriverError}; fn aligned_allocation_size(requested: usize) -> Result { @@ -203,7 +203,7 @@ The following example allocates physical memory, maps it into a virtual address range, writes data through the mapping, and reads it back. ```rust -use cuda_core::simt::vmm; +use cuda_core::vmm; use cuda_core::{CudaContext, DriverError}; fn single_gpu_vmm_roundtrip() -> Result<(), DriverError> { @@ -239,7 +239,7 @@ fn single_gpu_vmm_roundtrip() -> Result<(), DriverError> { let input: Vec = (0..64).map(|i| (i * 3 + 7) as u8).collect(); unsafe { - cuda_core::simt::memory::memcpy_htod_async( + cuda_core::memory::memcpy_htod_async( reservation.base(), input.as_ptr(), input.len(), @@ -252,7 +252,7 @@ fn single_gpu_vmm_roundtrip() -> Result<(), DriverError> { let mut output = vec![0u8; input.len()]; unsafe { - cuda_core::simt::memory::memcpy_dtoh_async( + cuda_core::memory::memcpy_dtoh_async( output.as_mut_ptr(), reservation.base(), output.len(), @@ -292,7 +292,7 @@ The following pattern: * Reads the same physical memory through GPU 1's mapping. ```rust -use cuda_core::simt::{peer, vmm}; +use cuda_core::{peer, vmm}; use cuda_core::{CudaContext, DriverError, IntoResult}; use std::mem::MaybeUninit; @@ -380,7 +380,7 @@ fn cross_gpu_vmm_roundtrip() -> Result<(), DriverError> { ctx0.bind_to_thread()?; unsafe { - cuda_core::simt::memory::memcpy_htod_async( + cuda_core::memory::memcpy_htod_async( reservation0.base(), input.as_ptr(), byte_length, @@ -395,7 +395,7 @@ fn cross_gpu_vmm_roundtrip() -> Result<(), DriverError> { ctx1.bind_to_thread()?; unsafe { - cuda_core::simt::memory::memcpy_dtoh_async( + cuda_core::memory::memcpy_dtoh_async( output.as_mut_ptr(), reservation1.base(), byte_length, diff --git a/cuda-oxide/scripts/check-host-api-paths.sh b/cuda-oxide/scripts/check-host-api-paths.sh index ef5a576890..e697f14636 100755 --- a/cuda-oxide/scripts/check-host-api-paths.sh +++ b/cuda-oxide/scripts/check-host-api-paths.sh @@ -1,34 +1,8 @@ #!/usr/bin/env bash # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -# Reject host-API paths that no longer resolve on the shared host crates. -# -# cuda-bindings, cuda-core, and cuda-async are shared with cutile-rs. Their -# crate roots carry cutile's own Tile API; the cuda-oxide (SIMT) surface lives -# under `cuda_core::simt` and `cuda_async::simt`. cuda-core re-exports most of -# the SIMT items at its root, with four deliberate exceptions that collide with -# Tile-side names or were never re-exported: -# -# cuda_core::LaunchConfig -> cuda_core::simt::LaunchConfig -# (root LaunchConfig is cutile's struct; -# LaunchConfig1D/2D/3D stay at the root) -# cuda_core::{memory,peer,vmm} -> cuda_core::simt::{memory,peer,vmm} -# (root vmm is cutile's fork) -# cuda_core::error::IntoResult -> cuda_core::IntoResult -# cuda_async:::: -> cuda_async::simt:::: -# (root device_operation, device_context, -# device_box, launch, error ... are Tile) -# -# A doc snippet, README, or `cargo oxide new` template that spells the old -# root path either fails to compile or, worse, binds the Tile-side type and -# fails later with a type mismatch. Nothing compiles those snippets, which is -# how some forty stale lines survived the crate switch, so this guard greps -# them. Rust sources under crates/ are covered too, for their doc comments; -# they are compiled, but a `//!` example is not. -# -# Root `cuda_async::zip!` / `unzip!` are fine: they expand to `.zip()` and -# dispatch on whichever `Zippable` is in scope, and they are the one shared -# entry point (the simt copies cannot be re-exported without a root collision). +# Reject paths into the removed cuda-core SIMT namespace. Shared handles and +# typed buffers now live at the crate root. cuda-async is migrated separately. set -euo pipefail export LC_ALL=C cd "$(dirname "$0")/.." @@ -48,14 +22,12 @@ mapfile -t files < <(git -C "${GIT_ROOT}" ls-files \ 'cuda-oxide/crates/cuda-device/src/**/*.rs' 'cuda-oxide/crates/cuda-device/src/*.rs' \ | sort -u) -# Each pattern is an ERE; `cuda_core::simt::...` never matches because the +# Each pattern is an ERE; `cuda_core::...` never matches because the # module name has to follow `cuda_core::` directly. patterns=( - 'cuda_core::LaunchConfig([^0-9A-Za-z_]|$)' - 'cuda_core::(memory|peer|vmm|error|launch|stream|module|context|event|pinned_host_buffer|device_buffer)::' - 'use cuda_core::\{[^}]*(^|[^A-Za-z0-9_])(LaunchConfig|peer|vmm|memory)([^0-9A-Za-z_]|\})' - 'cuda_async::(device_operation|device_context|device_box|device_future|scheduling_policies|reclaim|launch|error)([^0-9A-Za-z_]|$)' - 'cuda_core::simt::simt|cuda_async::simt::simt' + 'cuda_core::simt' + 'cuda_core::error::' + 'cuda_async::simt::simt' ) status=0 @@ -68,7 +40,7 @@ for pattern in "${patterns[@]}"; do done if [ "${status}" -ne 0 ]; then - echo "hint: SIMT items live under cuda_core::simt / cuda_async::simt; see the header of $0." >&2 + echo "hint: cuda-core handles and buffers use the shared crate-root API." >&2 exit 1 fi echo "OK: no stale host-API root paths in $((${#files[@]})) doc and source files." diff --git a/cutile-rs/CHANGELOG.md b/cutile-rs/CHANGELOG.md index 6b545607cb..d98c248f26 100644 --- a/cutile-rs/CHANGELOG.md +++ b/cutile-rs/CHANGELOG.md @@ -31,6 +31,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/). - Advance the lockstep Tile and shared host crates to v0.5.0 for the breaking safety-contract and host-runtime changes. +- Tile and SIMT now share the `cuda-core` context, stream, event, module, launch + configuration, and allocation types. Replace `cuda_core::simt` imports with + crate-root imports; use `Context` for context ownership and `Device` for a + physical GPU identity. Foreign allocations must provide their actual context. +- Typed buffers and tensors can share allocations without copying through + `Tensor::from_buffer`, `Tensor::into_buffer`, and contiguous borrowed buffer + views. Views share context identity, byte offsets, and access exclusion. + Completion leases retain allocations after early drops and forgotten launches; + buffer and stream cleanup no longer waits for GPU work on the dropping thread. +- Tile numeric storage wrappers implement `DeviceCopy` alongside `DType`; the + traits remain independent and packed FP4 keeps its byte storage representation. + - cuTile Rust now lives in the [NVIDIA/cuda-rust](https://github.com/NVIDIA/cuda-rust) repository under `cutile-rs/`, next to cuda-oxide (SIMT) and the shared host crates (`cuda-bindings`, `cuda-core`, `cuda-core-derive`, `cuda-async`) at the diff --git a/cutile-rs/cutile-benchmarks/benches/execution_lock.rs b/cutile-rs/cutile-benchmarks/benches/execution_lock.rs index 8bea76b85c..2769551975 100644 --- a/cutile-rs/cutile-benchmarks/benches/execution_lock.rs +++ b/cutile-rs/cutile-benchmarks/benches/execution_lock.rs @@ -14,7 +14,7 @@ use cuda_async::device_operation::{value, DeviceOp}; use std::time::Duration; fn has_gpu() -> bool { - cuda_core::Device::device_count() + cuda_core::Context::device_count() .map(|n| n > 0) .unwrap_or(false) } @@ -27,7 +27,7 @@ fn bench_execution_lock(c: &mut Criterion) { // Run on a fresh thread to get a clean CUDA context. let (stream,) = std::thread::spawn(|| { - let device = cuda_core::Device::new(0).unwrap(); + let device = cuda_core::Context::new(0).unwrap(); let stream = device.new_stream().unwrap(); (stream,) }) @@ -55,7 +55,7 @@ fn bench_execution_lock(c: &mut Criterion) { group.bench_function("async_on_no_lock", |b| { b.iter(|| { unsafe { value(42).async_on(&stream).unwrap() }; - unsafe { stream.synchronize() }.unwrap(); + stream.synchronize().unwrap(); }); }); diff --git a/cutile-rs/cutile-benchmarks/benches/fmha.rs b/cutile-rs/cutile-benchmarks/benches/fmha.rs index 3d4700a319..3e7a9c74b9 100644 --- a/cutile-rs/cutile-benchmarks/benches/fmha.rs +++ b/cutile-rs/cutile-benchmarks/benches/fmha.rs @@ -4,7 +4,7 @@ */ use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{randn_f16, zeros}; use cutile::core::f16; use cutile::tensor::{IntoPartition, Partition, Tensor}; @@ -159,7 +159,7 @@ fn ocean_fmha(c: &mut Criterion) { .measurement_time(Duration::from_millis(2000)); } - let device = Device::new(0).expect("Failed to get device."); + let device = Context::new(0).expect("Failed to get device."); let stream = device.new_stream().expect("Failed to get stream."); // This is what the ocean benchmark uses. @@ -238,7 +238,7 @@ fn ocean_fmha(c: &mut Criterion) { out.grid().expect("Invalid grid."), ((b * h) as u32, (m / bm) as u32, 1) ); - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); let start = Instant::now(); for _i in 0..iters { let (_, _, _, out_local, _, _) = unsafe { @@ -256,7 +256,7 @@ fn ocean_fmha(c: &mut Criterion) { }; out = out_local; } - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); start.elapsed() }); }, diff --git a/cutile-rs/cutile-benchmarks/benches/fmha_causal.rs b/cutile-rs/cutile-benchmarks/benches/fmha_causal.rs index 15e6548d6a..19d7bf8070 100644 --- a/cutile-rs/cutile-benchmarks/benches/fmha_causal.rs +++ b/cutile-rs/cutile-benchmarks/benches/fmha_causal.rs @@ -4,7 +4,7 @@ */ use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{randn_f16, zeros}; use cutile::core::f16; use cutile::tensor::{IntoPartition, Partition, Tensor}; @@ -149,7 +149,7 @@ fn ocean_fmha_causal(c: &mut Criterion) { .measurement_time(Duration::from_millis(2000)); } - let device = Device::new(0).expect("Failed to get device."); + let device = Context::new(0).expect("Failed to get device."); let stream = device.new_stream().expect("Failed to get stream."); // This is what the ocean benchmark uses. @@ -239,7 +239,7 @@ fn ocean_fmha_causal(c: &mut Criterion) { out.grid().expect("Invalid grid."), ((b * h) as u32, (m / bm) as u32, 1) ); - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); let start = Instant::now(); for _i in 0..iters { let (_, _, _, out_local, _, _, _) = unsafe { @@ -258,7 +258,7 @@ fn ocean_fmha_causal(c: &mut Criterion) { }; out = out_local; } - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); start.elapsed() }); }, diff --git a/cutile-rs/cutile-benchmarks/benches/gemm.rs b/cutile-rs/cutile-benchmarks/benches/gemm.rs index a327b73db1..02ed25536c 100644 --- a/cutile-rs/cutile-benchmarks/benches/gemm.rs +++ b/cutile-rs/cutile-benchmarks/benches/gemm.rs @@ -4,7 +4,7 @@ */ use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; use cuda_async::device_operation::{value, DeviceOp}; -use cuda_core::Device; +use cuda_core::Context; use cutile::api; use cutile::core::f16; use cutile::tile_kernel::{PartitionOp, TileKernel}; @@ -91,7 +91,7 @@ fn ocean_gemm(c: &mut Criterion) { .measurement_time(Duration::from_millis(2000)); } - let device = Device::new(0).expect("Failed to get device."); + let device = Context::new(0).expect("Failed to get device."); let stream = device.new_stream().expect("Failed to get stream."); // This is what the ocean benchmark uses. @@ -135,7 +135,7 @@ fn ocean_gemm(c: &mut Criterion) { .partition([bm, bn]) .sync_on(&stream) .expect("Failed."); - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); let start = Instant::now(); for _i in 0..iters { unsafe { @@ -146,7 +146,7 @@ fn ocean_gemm(c: &mut Criterion) { z = local_z; } } - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); start.elapsed() }); }); diff --git a/cutile-rs/cutile-benchmarks/benches/host_overhead.rs b/cutile-rs/cutile-benchmarks/benches/host_overhead.rs index ceae70d232..8db63ec401 100644 --- a/cutile-rs/cutile-benchmarks/benches/host_overhead.rs +++ b/cutile-rs/cutile-benchmarks/benches/host_overhead.rs @@ -16,7 +16,7 @@ use criterion::{criterion_group, criterion_main, Criterion}; use cuda_async::cuda_graph::CudaGraph; -use cuda_core::Device; +use cuda_core::Context; use cutile::prelude::*; use std::future::IntoFuture; use std::time::{Duration, Instant}; @@ -76,7 +76,7 @@ fn host_overhead(c: &mut Criterion) { .measurement_time(Duration::from_millis(2000)); } - let device = Device::new(0).expect("device"); + let device = Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let a: Arc> = api::ones::(&[N]).sync_on(&stream).expect("a").into(); @@ -117,7 +117,7 @@ fn host_overhead(c: &mut Criterion) { z = local_z; } elapsed += start.elapsed(); - unsafe { stream.synchronize() }.expect("drain"); + stream.synchronize().expect("drain"); done += batch; } elapsed @@ -150,7 +150,7 @@ fn host_overhead(c: &mut Criterion) { z = local_z; } elapsed += start.elapsed(); - unsafe { stream.synchronize() }.expect("drain"); + stream.synchronize().expect("drain"); done += batch; } elapsed @@ -203,7 +203,7 @@ fn host_overhead(c: &mut Criterion) { unsafe { graph.launch().async_on(&stream) }.expect("replay"); } elapsed += start.elapsed(); - unsafe { stream.synchronize() }.expect("drain"); + stream.synchronize().expect("drain"); done += batch; } elapsed diff --git a/cutile-rs/cutile-benchmarks/benches/launch_overhead.rs b/cutile-rs/cutile-benchmarks/benches/launch_overhead.rs index 20e80b44bd..c353483d9b 100644 --- a/cutile-rs/cutile-benchmarks/benches/launch_overhead.rs +++ b/cutile-rs/cutile-benchmarks/benches/launch_overhead.rs @@ -15,7 +15,7 @@ use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api; use cutile::core::f16; use cutile::tensor::{IntoPartition, Partition, Tensor}; @@ -63,7 +63,7 @@ fn launch_overhead(c: &mut Criterion) { .measurement_time(Duration::from_millis(2000)); } - let device = Device::new(0).expect("Failed to get device."); + let device = Context::new(0).expect("Failed to get device."); let stream = device.new_stream().expect("Failed to get stream."); let n: usize = 1024; @@ -100,17 +100,17 @@ fn launch_overhead(c: &mut Criterion) { z = local_z; } } - unsafe { stream.synchronize() }.expect("Failed."); + stream.synchronize().expect("Failed."); std::thread::sleep(Duration::from_millis(200)); - // 1. sync_on: execute + unsafe { stream.synchronize() }, no callbacks. + // 1. sync_on: execute + stream.synchronize(), no callbacks. group.bench_function(BenchmarkId::new("mode", "sync_on"), |b| { b.iter_custom(|iters| { let mut z: Partition> = api::zeros::(&[n, n]) .sync_on(&stream) .expect("Failed.") .partition([bm, bn]); - unsafe { stream.synchronize() }.expect("Failed."); + stream.synchronize().expect("Failed."); let start = Instant::now(); for _ in 0..iters { let (local_z, _, _, _) = unsafe { @@ -146,7 +146,7 @@ fn launch_overhead(c: &mut Criterion) { } }); } - unsafe { stream.synchronize() }.expect("Failed."); + stream.synchronize().expect("Failed."); std::thread::sleep(Duration::from_millis(200)); // 2. await: execute on first poll + cuLaunchHostFunc callback. @@ -157,7 +157,7 @@ fn launch_overhead(c: &mut Criterion) { .sync_on(&stream) .expect("Failed.") .partition([bm, bn]); - unsafe { stream.synchronize() }.expect("Failed."); + stream.synchronize().expect("Failed."); let start = Instant::now(); for _ in 0..iters { let (local_z, _, _, _) = unsafe { @@ -188,7 +188,7 @@ fn launch_overhead(c: &mut Criterion) { } } } - unsafe { stream.synchronize() }.expect("Failed."); + stream.synchronize().expect("Failed."); std::thread::sleep(Duration::from_millis(200)); // 3. async_on: execute only, single synchronize at end. @@ -198,7 +198,7 @@ fn launch_overhead(c: &mut Criterion) { .sync_on(&stream) .expect("Failed.") .partition([bm, bn]); - unsafe { stream.synchronize() }.expect("Failed."); + stream.synchronize().expect("Failed."); let start = Instant::now(); for _ in 0..iters { unsafe { @@ -209,7 +209,7 @@ fn launch_overhead(c: &mut Criterion) { z = local_z; } } - unsafe { stream.synchronize() }.expect("Failed."); + stream.synchronize().expect("Failed."); start.elapsed() }); }); diff --git a/cutile-rs/cutile-benchmarks/benches/rmsnorm.rs b/cutile-rs/cutile-benchmarks/benches/rmsnorm.rs index b592eda4fe..88aba6a1c4 100644 --- a/cutile-rs/cutile-benchmarks/benches/rmsnorm.rs +++ b/cutile-rs/cutile-benchmarks/benches/rmsnorm.rs @@ -4,7 +4,7 @@ */ use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{randn_f16, zeros}; use cutile::core::f16; use cutile::tensor::{IntoPartition, Partition, Tensor}; @@ -80,7 +80,7 @@ fn ocean_rmsnorm(c: &mut Criterion) { .measurement_time(Duration::from_millis(2000)); } - let device = Device::new(0).expect("Failed to get device."); + let device = Context::new(0).expect("Failed to get device."); let stream = device.new_stream().expect("Failed to get stream."); let shapes = (0..6) @@ -111,7 +111,7 @@ fn ocean_rmsnorm(c: &mut Criterion) { .sync_on(&stream) .expect("Failed.") .partition([1, n]); - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); let start = Instant::now(); for _i in 0..iters { unsafe { @@ -122,7 +122,7 @@ fn ocean_rmsnorm(c: &mut Criterion) { out = local_out; } } - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); start.elapsed() }); }); diff --git a/cutile-rs/cutile-benchmarks/benches/softmax.rs b/cutile-rs/cutile-benchmarks/benches/softmax.rs index c99075ab64..5a88976fc9 100644 --- a/cutile-rs/cutile-benchmarks/benches/softmax.rs +++ b/cutile-rs/cutile-benchmarks/benches/softmax.rs @@ -4,7 +4,7 @@ */ use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{randn_f16, zeros}; use cutile::core::f16; use cutile::tensor::{IntoPartition, Partition, Tensor}; @@ -49,7 +49,7 @@ fn softmax(c: &mut Criterion) { .measurement_time(Duration::from_millis(2000)); } - let device = Device::new(0).expect("Failed to get device."); + let device = Context::new(0).expect("Failed to get device."); let stream = device.new_stream().expect("Failed to get stream."); let shapes = (0..6) @@ -82,7 +82,7 @@ fn softmax(c: &mut Criterion) { .sync_on(&stream) .expect("Failed.") .partition([bm, bn]); - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); let start = Instant::now(); for _i in 0..iters { unsafe { @@ -93,7 +93,7 @@ fn softmax(c: &mut Criterion) { out = local_out; } } - unsafe { stream.synchronize() }.expect("Failed to synchronize."); + stream.synchronize().expect("Failed to synchronize."); start.elapsed() }); }, diff --git a/cutile-rs/cutile-benchmarks/paper/app_exp1_work_distribution/README.md b/cutile-rs/cutile-benchmarks/paper/app_exp1_work_distribution/README.md index d2c37c899d..1f556d8bbe 100644 --- a/cutile-rs/cutile-benchmarks/paper/app_exp1_work_distribution/README.md +++ b/cutile-rs/cutile-benchmarks/paper/app_exp1_work_distribution/README.md @@ -72,7 +72,7 @@ the workers once and reuses them via command/done channels: `spawn_local`'d worker tasks. **Context binding.** In Mode B each worker calls -`stream.device().bind_to_thread()` on startup, binding the CUDA +`stream.context().bind_to_thread()` on startup, binding the CUDA context to that OS thread. Without this, driver calls serialize against whichever thread currently owns the context. diff --git a/cutile-rs/cutile-benchmarks/paper/app_exp1_work_distribution/bimodal_gemms_rust/src/main.rs b/cutile-rs/cutile-benchmarks/paper/app_exp1_work_distribution/bimodal_gemms_rust/src/main.rs index 688bfd9556..e7aa71828c 100644 --- a/cutile-rs/cutile-benchmarks/paper/app_exp1_work_distribution/bimodal_gemms_rust/src/main.rs +++ b/cutile-rs/cutile-benchmarks/paper/app_exp1_work_distribution/bimodal_gemms_rust/src/main.rs @@ -39,7 +39,7 @@ use cuda_async::device_future::DeviceFuture; use cuda_async::device_operation::{DeviceOp, ExecutionContext}; use cuda_core::sys::CUctx_flags_enum_CU_CTX_SCHED_SPIN; -use cuda_core::{sys, Device, IntoResult, Stream}; +use cuda_core::{sys, Context, IntoResult, Stream}; use cutile::api; use cutile::core::f16; use cutile::tensor::{IntoPartition, Partition, Tensor}; @@ -243,7 +243,7 @@ fn make_workload(n: usize, small_ratio: f64) -> Vec { fn run_serial_samples( workload: &[Size], - device: &Arc, + device: &Arc, samples: usize, warmup: bool, spec: SizeSpec, @@ -251,7 +251,7 @@ fn run_serial_samples( ) -> Vec { let stream = device.new_stream().expect("stream"); let mut worker = Worker::new(stream.clone(), spec); - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); let run_once = |worker: &mut Worker| -> f64 { let t0 = Instant::now(); @@ -295,7 +295,7 @@ enum Cmd { fn run_threaded_samples( workload: &[Size], - device: &Arc, + device: &Arc, stream_count: usize, samples: usize, warmup: bool, @@ -308,7 +308,7 @@ fn run_threaded_samples( .collect(); let workers: Vec = streams.into_iter().map(|s| Worker::new(s, spec)).collect(); for w in &workers { - unsafe { w.stream.synchronize() }.expect("sync"); + w.stream.synchronize().expect("sync"); } let (done_tx, done_rx) = mpsc::channel::(); @@ -320,7 +320,7 @@ fn run_threaded_samples( cmd_senders.push(cmd_tx); let done_tx = done_tx.clone(); let h = std::thread::spawn(move || { - worker.stream.device().bind_to_thread().expect("bind"); + worker.stream.context().bind_to_thread().expect("bind"); while let Ok(cmd) = cmd_rx.recv() { match cmd { Cmd::Quit => break, @@ -391,7 +391,7 @@ fn run_threaded_samples( fn run_async_samples( workload: &[Size], - device: &Arc, + device: &Arc, stream_count: usize, samples: usize, warmup: bool, @@ -436,7 +436,7 @@ fn run_async_samples( let h = tokio::spawn(async move { let stream = device.new_stream().expect("stream"); let mut worker = Worker::new(stream, spec); - unsafe { worker.stream.synchronize() }.expect("sync"); + worker.stream.synchronize().expect("sync"); while let Some(maybe_queue) = cmd_rx.recv().await { let queue = match maybe_queue { Some(q) => q, @@ -604,7 +604,7 @@ fn main() -> Result<(), Box> { } let spec = SizeSpec { small_m, large_m }; - let device = Device::new(0).expect("device"); + let device = Context::new(0).expect("device"); // Pin the context to CU_CTX_SCHED_SPIN for a fair cross-mode // comparison. The CUDA default CU_CTX_SCHED_AUTO adapts sync diff --git a/cutile-rs/cutile-benchmarks/paper/sec3_example1_race_detection/permute_race_rust.rs b/cutile-rs/cutile-benchmarks/paper/sec3_example1_race_detection/permute_race_rust.rs index 339f631d3b..aa2ef635b0 100644 --- a/cutile-rs/cutile-benchmarks/paper/sec3_example1_race_detection/permute_race_rust.rs +++ b/cutile-rs/cutile-benchmarks/paper/sec3_example1_race_detection/permute_race_rust.rs @@ -24,7 +24,7 @@ * cargo run -p cutile-examples --example permute_race_rust */ -use cuda_core::Device; +use cuda_core::Context; use cutile::error::Error; use cutile::prelude::*; use std::sync::Arc; @@ -57,7 +57,7 @@ mod kernels { } fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let b = 2usize; diff --git a/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/diagnostics/side_studies/token_ordering_rust.rs b/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/diagnostics/side_studies/token_ordering_rust.rs index 4fb5947737..2f07ad2dbd 100644 --- a/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/diagnostics/side_studies/token_ordering_rust.rs +++ b/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/diagnostics/side_studies/token_ordering_rust.rs @@ -16,7 +16,7 @@ * Look for print_ir output on stderr. */ -use cuda_core::Device; +use cuda_core::Context; use cutile::error::Error; use cutile::prelude::*; use std::sync::Arc; @@ -72,7 +72,7 @@ mod kernels { } fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let n = 1024usize; diff --git a/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/rust/elemwise/src/main.rs b/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/rust/elemwise/src/main.rs index f0130c6235..86c29d54c3 100644 --- a/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/rust/elemwise/src/main.rs +++ b/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/rust/elemwise/src/main.rs @@ -43,7 +43,7 @@ // Lock clocks for paper-final runs: `sudo nvidia-smi -lgc 2400,2400`. use cuda_async::device_operation::DeviceOp; -use cuda_core::{sys, Device, IntoResult, Stream}; +use cuda_core::{sys, Context, IntoResult, Stream}; use cutile::api; use cutile::core::f16; use cutile::tile_kernel::{CompileOptions, PartitionOp, TileKernel}; @@ -352,10 +352,10 @@ fn output_path(file_name: &str) -> std::path::PathBuf { fn sync_stream(stream: &Arc, context: &str) { stream - .device() + .context() .bind_to_thread() .expect("bind stream device"); - unsafe { stream.synchronize() }.expect(context); + stream.synchronize().expect(context); } struct TimingEvent(sys::CUevent); @@ -363,7 +363,7 @@ struct TimingEvent(sys::CUevent); impl TimingEvent { fn new(stream: &Arc) -> Self { stream - .device() + .context() .bind_to_thread() .expect("bind stream device"); let mut event = std::mem::MaybeUninit::uninit(); @@ -380,7 +380,7 @@ impl TimingEvent { fn record(&self, stream: &Arc) { stream - .device() + .context() .bind_to_thread() .expect("bind stream device"); unsafe { sys::cuEventRecord(self.0, stream.cu_stream()) } @@ -390,7 +390,7 @@ impl TimingEvent { fn synchronize(&self, stream: &Arc) { stream - .device() + .context() .bind_to_thread() .expect("bind stream device"); unsafe { sys::cuEventSynchronize(self.0) } @@ -400,7 +400,7 @@ impl TimingEvent { fn elapsed_us(&self, end: &Self, stream: &Arc) -> f64 { stream - .device() + .context() .bind_to_thread() .expect("bind stream device"); let mut ms: f32 = 0.0; @@ -785,7 +785,7 @@ fn main() -> Result<(), Box> { std::process::exit(2); } - let device = Device::new(0).expect("device"); + let device = Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); // Sweep N from 2^20 (1M, ~2 MB per f16 tensor) to 2^28 (256M, diff --git a/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/rust/gemm/src/main.rs b/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/rust/gemm/src/main.rs index 6b8ef27f02..ada3103bae 100644 --- a/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/rust/gemm/src/main.rs +++ b/cutile-rs/cutile-benchmarks/paper/sec5_exp1_safety_overhead/rust/gemm/src/main.rs @@ -17,7 +17,7 @@ // to a stable reference independent of upstream changes. use cuda_async::device_operation::DeviceOp; -use cuda_core::{Device, IntoResult, Stream}; +use cuda_core::{Context, IntoResult, Stream}; use cutile::api; use cutile::core::f16; use cutile::prelude::*; @@ -756,7 +756,7 @@ fn option_label(value: Option) -> String { .unwrap_or_else(|| "default".to_string()) } -fn device_sm_count(device: &Arc) -> Result { +fn device_sm_count(device: &Arc) -> Result { let mut result = 0i32; unsafe { cuda_core::sys::cuDeviceGetAttribute( @@ -769,7 +769,7 @@ fn device_sm_count(device: &Arc) -> Result Ok(result) } -fn device_sm_arch(device: &Arc) -> Result { +fn device_sm_arch(device: &Arc) -> Result { let mut major = 0i32; let mut minor = 0i32; unsafe { @@ -968,10 +968,10 @@ fn output_path(file_name: &str) -> std::path::PathBuf { fn sync_stream(stream: &Arc, context: &str) { stream - .device() + .context() .bind_to_thread() .expect("bind stream device"); - unsafe { stream.synchronize() }.expect(context); + stream.synchronize().expect(context); } fn check_gemm_output( @@ -1684,7 +1684,7 @@ fn main() -> Result<(), Box> { "optimized" }; - let device = Device::new(0).expect("device"); + let device = Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let num_sms = device_sm_count(&device).unwrap_or(148); let sm_arch = device_sm_arch(&device).unwrap_or(0); diff --git a/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/src/bin/async_throughput.rs b/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/src/bin/async_throughput.rs index 8cd450b644..6f5af3bab1 100644 --- a/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/src/bin/async_throughput.rs +++ b/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/src/bin/async_throughput.rs @@ -37,7 +37,7 @@ use cuda_async::cuda_graph::CudaGraph; use cuda_async::device_future::DeviceFuture; use cuda_async::device_operation::{BoxedDeviceOp, DeviceOp, ExecutionContext}; -use cuda_core::{Device, Stream}; +use cuda_core::{Context, Stream}; use cutile::api; use cutile::core::f16; use cutile::tensor::{IntoPartition, Partition, Tensor}; @@ -200,11 +200,11 @@ fn bench_sync( graph.launch().sync_on(stream).expect("graph replay"); spin_us(w_us); } - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); let mut throughput = Vec::with_capacity(n_samples); for _ in 0..n_samples { - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); let t0 = Instant::now(); for _ in 0..iters { graph.launch().sync_on(stream).expect("graph replay"); @@ -252,11 +252,11 @@ fn bench_async( for _ in 0..n_warmup { one_iter!(); } - unsafe { stream_clone.synchronize() }.expect("sync"); + stream_clone.synchronize().expect("sync"); let mut throughput = Vec::with_capacity(n_samples); for _ in 0..n_samples { - unsafe { stream_clone.synchronize() }.expect("sync"); + stream_clone.synchronize().expect("sync"); let t0 = Instant::now(); for _ in 0..iters { one_iter!(); @@ -308,7 +308,7 @@ fn main() -> Result<(), Box> { .unwrap_or("results_part_b.csv") .to_string(); - let device = Device::new(0).expect("device"); + let device = Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let d = D as usize; diff --git a/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/src/main.rs b/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/src/main.rs index 818d2b3660..a8122b2254 100644 --- a/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/src/main.rs +++ b/cutile-rs/cutile-benchmarks/paper/sec5_exp2_execution_mode_overhead/launch_overhead_rust/src/main.rs @@ -32,7 +32,7 @@ use cuda_async::cuda_graph::CudaGraph; use cuda_async::device_operation::{BoxedDeviceOp, DeviceOp, Unzippable3}; -use cuda_core::{Device, Stream}; +use cuda_core::{Context, Stream}; use cutile::api; use cutile::core::f16; use cutile::tensor::{IntoPartition, Partition, Tensor}; @@ -173,11 +173,11 @@ fn bench_sync_individual( for _ in 0..n_warmup { part = run(part); } - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); let mut samples = Vec::with_capacity(n_samples); for _ in 0..n_samples { - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); let t0 = Instant::now(); for _ in 0..iters { part = run(part); @@ -207,7 +207,7 @@ fn bench_sync_chained( let chain = build_chain(part, n, &x, &g, generics); part = chain.sync().expect("sync chain"); } - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); // Time chain *execution* only, not construction. build_chain boxes one op // per launch; that boxing is an artifact of assembling the chain @@ -216,7 +216,7 @@ fn bench_sync_chained( // the per-launch cost remains in the measured region. let mut samples = Vec::with_capacity(n_samples); for _ in 0..n_samples { - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); let mut elapsed = std::time::Duration::ZERO; for _ in 0..iters { let chain = build_chain(part, n, &x, &g, generics); @@ -285,7 +285,7 @@ fn bench_async( let chain = build_chain(part, n, &x, &g, generics); part = chain.await.expect("chain"); } - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); // Time chain execution (.await) only; build_chain is built outside the // timer for the same reason as the sync-chained mode (its per-launch @@ -293,7 +293,7 @@ fn bench_async( // path), while per-launch cost stays in the execute walk. let mut samples = Vec::with_capacity(n_samples); for _ in 0..n_samples { - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); let mut elapsed = std::time::Duration::ZERO; for _ in 0..iters { let chain = build_chain(part, n, &x, &g, generics); @@ -328,11 +328,11 @@ fn bench_graph( for _ in 0..n_warmup { graph.launch().sync_on(stream).expect("graph warmup"); } - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); let mut samples = Vec::with_capacity(n_samples); for _ in 0..n_samples { - unsafe { stream.synchronize() }.expect("sync"); + stream.synchronize().expect("sync"); let t0 = Instant::now(); for _ in 0..iters { graph.launch().sync_on(stream).expect("graph replay"); @@ -371,7 +371,7 @@ fn main() -> Result<(), Box> { .and_then(|s| s.parse().ok()) .unwrap_or(DEFAULT_N_SAMPLES); - let device = Device::new(0).expect("device"); + let device = Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let d = D as usize; diff --git a/cutile-rs/cutile-book/guide/host-vs-device.md b/cutile-rs/cutile-book/guide/host-vs-device.md index 0cc781d7d3..44048d6d1b 100644 --- a/cutile-rs/cutile-book/guide/host-vs-device.md +++ b/cutile-rs/cutile-book/guide/host-vs-device.md @@ -7,7 +7,7 @@ use cutile::prelude::*; use kernels::scale; fn main() -> Result<(), cuda_async::error::DeviceError> { - let device = cuda_core::Device::new(0)?; + let device = cuda_core::Context::new(0)?; let stream = device.new_stream()?; let x = api::ones::(&[32, 32]).sync_on(&stream)?; diff --git a/cutile-rs/cutile-book/guide/interoperability.md b/cutile-rs/cutile-book/guide/interoperability.md index c804768401..1d1964029c 100644 --- a/cutile-rs/cutile-book/guide/interoperability.md +++ b/cutile-rs/cutile-book/guide/interoperability.md @@ -77,7 +77,7 @@ launcher.set_launch_config(LaunchConfig { launcher.await?; ``` -Scalar arguments implementing `DType` use the safe `push_arg` method. Device +Scalar arguments implementing `DType` use the safe `push_arg` method. Context pointers require `unsafe { push_device_ptr() }`. The caller must check that allocations are valid on the target GPU, large enough for the kernel, and free of conflicting accesses. Argument order and types must match the kernel's @@ -224,13 +224,13 @@ requirements. ## Borrowing Foreign CUDA Handles -If your application already owns CUDA handles through another Rust binding crate — cudarc, Candle, or a hand-rolled `bindgen` wrapper — wrap them into a cuTile `Device`, `Stream`, `Module`, or `Function` without transferring ownership. +If your application already owns CUDA handles through another Rust binding crate — cudarc, Candle, or a hand-rolled `bindgen` wrapper — wrap them into a cuTile `Context`, `Stream`, `Module`, or `Function` without transferring ownership. The `borrow_raw` constructors take raw C primitives (`*mut c_void` for opaque handles, `c_int` for `CUdevice`) rather than `cuda_bindings` typedefs, so no nominal-type mismatch between binding crates gets in the way: ```rust use core::ffi::{c_int, c_void}; -use cuda_core::{Device, Stream}; +use cuda_core::{Context, Stream}; // `foreign` is a handle bundle from another Rust binding crate (cudarc, // Candle, a bindgen wrapper, …). Its `CUcontext` / `CUstream` typedefs are @@ -240,7 +240,7 @@ use cuda_core::{Device, Stream}; // Safety: the caller guarantees the handles are valid, outlive the returned // wrappers, and are not concurrently destroyed. let device = unsafe { - Device::borrow_raw( + Context::borrow_raw( foreign.cu_ctx as *mut c_void, foreign.cu_device as c_int, foreign.ordinal, @@ -252,7 +252,7 @@ let stream = unsafe { Stream::borrow_raw(foreign.cu_stream as *mut c_void, &devi let result = my_kernel(out, x).sync_on(&stream)?; ``` -Borrowed wrappers skip destruction on drop: `Stream` does not call `cuStreamDestroy`, `Module` does not unload, and `Device` does not release the primary context. The source framework retains full control over handle lifetimes. +Borrowed wrappers skip destruction on drop: `Stream` does not call `cuStreamDestroy`, `Module` does not unload, and `Context` does not release the primary context. The source framework retains full control over handle lifetimes. `Module::borrow_raw` and `Function::borrow_raw` follow the same pattern for pre-compiled modules and already-resolved functions. See the `cudarc_interop` example in `cutile-examples/examples/` for an end-to-end walkthrough. @@ -291,4 +291,4 @@ Both front-ends use the same underlying Tile IR compilation pipeline and generat --- -Continue to [Debugging and Profiling](debugging-and-profiling.md) for troubleshooting. Interop kernels use the `DeviceOp` model described in [Device Operations](device-operations.md). +Continue to [Debugging and Profiling](debugging-and-profiling.md) for troubleshooting. Interop kernels use the `DeviceOp` model described in [Context Operations](device-operations.md). diff --git a/cutile-rs/cutile-book/guide/introduction.md b/cutile-rs/cutile-book/guide/introduction.md index 0850f82ea2..6b4e59bb7f 100644 --- a/cutile-rs/cutile-book/guide/introduction.md +++ b/cutile-rs/cutile-book/guide/introduction.md @@ -31,7 +31,7 @@ mod my_module { } fn main() -> Result<(), cuda_async::error::DeviceError> { - let device = cuda_core::Device::new(0)?; + let device = cuda_core::Context::new(0)?; let stream = device.new_stream()?; let x = api::ones::(&[32, 32]).sync_on(&stream)?; diff --git a/cutile-rs/cutile-book/reference/host-api.md b/cutile-rs/cutile-book/reference/host-api.md index 7b4cfd0d62..c8aa369ee9 100644 --- a/cutile-rs/cutile-book/reference/host-api.md +++ b/cutile-rs/cutile-book/reference/host-api.md @@ -2,9 +2,9 @@ The host API covers tensors, CUDA contexts and streams, kernel launches, and `DeviceOp` execution. For an introduction, see -[Host vs. Device Code](../guide/host-vs-device.md), +[Host vs. Context Code](../guide/host-vs-device.md), [Tensors and Tiles](../guide/tensors-and-tiles.md), and -[Device Operations](../guide/device-operations.md). +[Context Operations](../guide/device-operations.md). --- @@ -156,7 +156,7 @@ existing tensor without allocation or copying. --- -## Host-Device and Device-Device Transfers +## Host-Context and Context-Context Transfers Moving data between CPU and GPU, or between two device tensors, uses APIs that return `DeviceOp`s — the copy is scheduled when the op runs, not constructed: @@ -175,10 +175,10 @@ return `DeviceOp`s — the copy is scheduled when the op runs, not constructed: let data: Arc> = Arc::new(vec![1.0; 1024]); let tensor: Tensor = api::copy_host_vec_to_device(&data).sync_on(&stream)?; -// Device -> host +// Context -> host let result: Vec = tensor.to_host_vec().sync_on(&stream)?; -// Device -> device +// Context -> device let copy = tensor.dup().sync_on(&stream)?; ``` @@ -210,24 +210,24 @@ graph.launch().sync_on(&stream)?; ## Devices and Streams -Every host program starts with a `Device`, plus one or more `Stream`s for scheduling GPU work: +Every host program starts with a `Context`, plus one or more `Stream`s for scheduling GPU work: ```rust -use cuda_core::Device; +use cuda_core::Context; -let device = Device::new(0)?; // Device ordinal 0 +let device = Context::new(0)?; // Primary context for GPU 0 let stream = device.new_stream()?; // A new stream owned by this device ``` | Method | Returns | Description | |---|---|---| -| `Device::new(ordinal: usize)` | `Result, DriverError>` | Create a device handle bound to a GPU ordinal | -| `Device::device_count()` | `Result` | Number of CUDA-capable devices | +| `Context::new(ordinal: usize)` | `Result, DriverError>` | Create a device handle bound to a GPU ordinal | +| `Context::device_count()` | `Result` | Number of CUDA-capable devices | | `device.ordinal()` | `usize` | GPU ordinal this handle represents | -| `device.name()` | `Result` | Device name | +| `device.name()` | `Result` | Context name | | `device.new_stream()` | `Result, DriverError>` | Create a new stream on this device | -| `unsafe Device::borrow_raw(cu_ctx, cu_device, ordinal)` | `Arc` | Borrow an externally owned CUDA context/device for interop | -| `unsafe Device::borrow_with_owner(cu_ctx, cu_device, ordinal, owner)` | `Arc` | Same, holding an `Arc` so the foreign owner outlives the handle | +| `unsafe Context::borrow_raw(cu_ctx, cu_device, ordinal)` | `Arc` | Borrow an externally owned CUDA context/device for interop | +| `unsafe Context::borrow_with_owner(cu_ctx, cu_device, ordinal, owner)` | `Arc` | Same, holding an `Arc` so the foreign owner outlives the handle | | `unsafe Stream::borrow_raw(cu_stream, &device)` | `Arc` | Borrow an externally owned CUDA stream for interop | | `unsafe Stream::borrow_with_owner(cu_stream, &device, owner)` | `Arc` | Same, holding an `Arc` | | `unsafe Module::borrow_raw(...)` / `unsafe Function::borrow_raw(...)` | CUDA module/function wrappers | Borrow externally owned CUDA handles | @@ -712,7 +712,7 @@ error short-circuits to the caller. | Variant | When it occurs | |---|---| | `Driver(DriverError)` | CUDA driver call failed (OOM, invalid argument, etc.) | -| `Context { device_id, message }` | Device context assertion failed | +| `Context { device_id, message }` | Context context assertion failed | | `KernelCache(String)` | Declared, but no current code path constructs it | | `Scheduling(String)` | No stream available or policy misconfigured | | `Launch(String)` | A launcher-generated precondition failed (`kernel_launch_assert`: argument shapes, declared `preconditions`) | @@ -836,14 +836,14 @@ Public host-side API not covered in the sections above: | launcher `.compile()` / `.compile_on(&stream)` | JIT-compile and cache the specialization without launching | | launcher `.specialize()`, `.l1_cache_key()`, `.l2_cache_key()` | Resolve the specialization identity and the in-memory / on-disk cache keys without compiling or launching | | `api::meta::(&shape)` | Placeholder tensor carrying shape and dtype without allocating, for `.compile()` warmups | -| `CompileOptions::{opt_level, device_debug, lineinfo, sanitize_memcheck}` | Device compiler flags; each is part of the cache keys (see [Debugging and Profiling](../guide/debugging-and-profiling.md)) | -| `cutile::bench::{do_bench, do_bench_paired, BenchOptions, Measurement}` | Device-event kernel timing (see [Performance](../guide/performance.md)) | +| `CompileOptions::{opt_level, device_debug, lineinfo, sanitize_memcheck}` | Context compiler flags; each is part of the cache keys (see [Debugging and Profiling](../guide/debugging-and-profiling.md)) | +| `cutile::bench::{do_bench, do_bench_paired, BenchOptions, Measurement}` | Context-event kernel timing (see [Performance](../guide/performance.md)) | | `cuda_async::device_context::{set_default_device, global_policy, with_device_policy}` | Set the thread's default device; read or borrow a device's scheduling policy | --- ## See Also -- [Device Operations](../guide/device-operations.md) — tutorial-style guide to streams, scheduling, and composition patterns +- [Context Operations](../guide/device-operations.md) — tutorial-style guide to streams, scheduling, and composition patterns - [Tutorial 10](../tutorials/10-cuda-graphs.md) — end-to-end CUDA graph example - [Interoperability](../guide/interoperability.md) — integrating custom CUDA C++ kernels into the DeviceOp model diff --git a/cutile-rs/cutile-book/tutorials/02-vector-addition.md b/cutile-rs/cutile-book/tutorials/02-vector-addition.md index c75df9db21..a8b00891f7 100644 --- a/cutile-rs/cutile-book/tutorials/02-vector-addition.md +++ b/cutile-rs/cutile-book/tutorials/02-vector-addition.md @@ -8,7 +8,7 @@ In cutile, tile programs run concurrently and each program knows its grid coordi ```rust use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use std::sync::Arc; use cutile; use cutile::api::{ones, zeros}; @@ -35,7 +35,7 @@ mod my_module { use my_module::add; fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; // Create input tensors: 32×32 matrices filled with 1.0 @@ -84,14 +84,14 @@ Mutable tensors **must** be partitioned on the host side before kernel launch. T On the host side, the generated launcher expects a partition for every `&mut Tensor` parameter — `Partition>` from `tensor.partition(...)`, `Partition<&mut Tensor>` from `(&mut tensor).partition(...)`, or a mapped partition — so you always call `.partition(...)` before passing the tensor. -### Device-Side Partitioning (Available for `&Tensor`) +### Context-Side Partitioning (Available for `&Tensor`) Read-only inputs are passed as `&Tensor`, `Tensor`, `Arc>`, or `&TensorView` on the host side — no host-side partitioning required. Multiple tile blocks can safely read from the same or overlapping regions, so there is no exclusive-access constraint to enforce. Instead, read-only tensors can be partitioned **inside the kernel** using `.partition(shape![M, N])`: ```rust -// Device-side: partition a read-only tensor inside the kernel. +// Context-side: partition a read-only tensor inside the kernel. let part_x = x.partition(shape![BM, BK]); let tile = part_x.load([i, j]); ``` @@ -163,7 +163,7 @@ fn my_kernel(...) { | Concept | What It Means | |---------|---------------| | **Host-side partitioning** | `.partition([M, N])` on the host — required for `&mut Tensor` to ensure exclusive write access and determine the launch grid | -| **Device-side partitioning** | `.partition(shape![M, N])` inside the kernel — available for `&Tensor`, flexible access patterns | +| **Context-side partitioning** | `.partition(shape![M, N])` inside the kernel — available for `&Tensor`, flexible access patterns | | **Static shape `S`** | The tile shape carried in the compiled variant | | **Dynamic shape `[-1, -1]`** | Dynamic tensor shape; does not create a new compiled variant when tensor shape changes | | **load_like** | Convenience for element-wise ops: loads from the input using the same partitioning and mapping as the output (also available as the free function `load_tile_like`). The input must have the same shape as the whole output tensor — the tensor the host partitioned, not the per-program sub-tensor — and the output must be a partitioned mutable tensor | diff --git a/cutile-rs/cutile-book/tutorials/03-saxpy.md b/cutile-rs/cutile-book/tutorials/03-saxpy.md index 641c961631..5f33ed7179 100644 --- a/cutile-rs/cutile-book/tutorials/03-saxpy.md +++ b/cutile-rs/cutile-book/tutorials/03-saxpy.md @@ -23,7 +23,7 @@ The compiler implements broadcasting without allocating memory for the copies. ```rust use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use std::sync::Arc; use cutile; use cutile::api::arange; @@ -50,7 +50,7 @@ mod my_module { use my_module::saxpy; fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let a = 2.0f32; // Our scalar multiplier diff --git a/cutile-rs/cutile-book/tutorials/04-matrix-multiplication.md b/cutile-rs/cutile-book/tutorials/04-matrix-multiplication.md index d3cebe398d..4cf0b613ef 100644 --- a/cutile-rs/cutile-book/tutorials/04-matrix-multiplication.md +++ b/cutile-rs/cutile-book/tutorials/04-matrix-multiplication.md @@ -60,7 +60,7 @@ BM times. This reduces global-memory traffic. ```rust use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use std::sync::Arc; use cutile; use cutile::api; @@ -98,7 +98,7 @@ mod my_module { use my_module::gemm; fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let (bm, bn, bk) = (16usize, 16usize, 8usize); diff --git a/cutile-rs/cutile-book/tutorials/05-fused-softmax.md b/cutile-rs/cutile-book/tutorials/05-fused-softmax.md index a00d6b8544..bf1a8838f8 100644 --- a/cutile-rs/cutile-book/tutorials/05-fused-softmax.md +++ b/cutile-rs/cutile-book/tutorials/05-fused-softmax.md @@ -45,7 +45,7 @@ exp(x_i - max) / Σ exp(x_j - max) ```rust use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile; use cutile::api::arange; use cutile::error::Error; @@ -83,7 +83,7 @@ mod my_module { use my_module::softmax; fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let (m, n) = (4usize, 8usize); diff --git a/cutile-rs/cutile-book/tutorials/06-flash-attention.md b/cutile-rs/cutile-book/tutorials/06-flash-attention.md index c33546a4a6..c8b9a5a68a 100644 --- a/cutile-rs/cutile-book/tutorials/06-flash-attention.md +++ b/cutile-rs/cutile-book/tutorials/06-flash-attention.md @@ -130,7 +130,7 @@ For each Q tile (row block of the output): ```rust use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use std::sync::Arc; use cutile; use cutile::api::{randn, zeros}; @@ -227,7 +227,7 @@ mod fmha_module { use fmha_module::fmha; fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let (batch, heads, seq_len, head_dim) = (2, 4, 128, 64); diff --git a/cutile-rs/cutile-compiler/src/cuda_tile_runtime_utils.rs b/cutile-rs/cutile-compiler/src/cuda_tile_runtime_utils.rs index 203dbdd5c1..782ffe03c5 100644 --- a/cutile-rs/cutile-compiler/src/cuda_tile_runtime_utils.rs +++ b/cutile-rs/cutile-compiler/src/cuda_tile_runtime_utils.rs @@ -7,7 +7,7 @@ //! Provides GPU detection and bytecode compilation helpers. use crate::error::JITError; -use cuda_core::{get_device_sm_name, Device}; +use cuda_core::{get_device_sm_name, Context}; use cutile_ir::bytecode::{write_bytecode_version, BytecodeVersion}; use std::collections::HashMap; use std::env; @@ -56,7 +56,7 @@ impl ToolkitCapabilities { type Key = (String, Option, String); static CACHE: OnceLock>>> = OnceLock::new(); let tileiras = tileiras_binary(); - let device = Device::raw_device(device_id) + let device = Context::raw_device(device_id) .map_err(|e| JITError::Generic(format!("cannot query CUDA device {device_id}: {e}")))?; // SAFETY: the driver returned this device handle. let architecture = unsafe { get_device_sm_name(device) } @@ -120,7 +120,7 @@ pub fn get_gpu_name(device_id: usize) -> String { [const { OnceLock::new() }; MAX_CACHED_DEVICES]; let query = || -> String { - let dev = Device::raw_device(device_id).unwrap_or_else(|e| { + let dev = Context::raw_device(device_id).unwrap_or_else(|e| { panic!( "failed to get CUDA device {device_id}: {e}\n\ Ensure an NVIDIA GPU is visible to the process and the CUDA driver is installed." diff --git a/cutile-rs/cutile-examples/examples/autotune.rs b/cutile-rs/cutile-examples/examples/autotune.rs index 0792b5bac8..f6807226bd 100644 --- a/cutile-rs/cutile-examples/examples/autotune.rs +++ b/cutile-rs/cutile-examples/examples/autotune.rs @@ -11,7 +11,7 @@ //! ``` use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{randn, zeros}; use cutile::error::Error; use cutile::tensor::{IntoPartition, Tensor}; @@ -71,7 +71,7 @@ fn main() -> Result<(), Error> { return Ok(()); } - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let (m, n) = (512usize, 1024usize); let eps: f32 = 1e-8; diff --git a/cutile-rs/cutile-examples/examples/batch_matmul.rs b/cutile-rs/cutile-examples/examples/batch_matmul.rs index 3faf0b9241..d69561f08b 100644 --- a/cutile-rs/cutile-examples/examples/batch_matmul.rs +++ b/cutile-rs/cutile-examples/examples/batch_matmul.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{ones, zeros}; use cutile::error::Error; use cutile::tensor::{IntoPartition, Partition, Tensor, ToHostVec}; @@ -50,7 +50,7 @@ fn main() -> Result<(), Error> { return Ok(()); } - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let batch = 4usize; diff --git a/cutile-rs/cutile-examples/examples/cuda_graphs.rs b/cutile-rs/cutile-examples/examples/cuda_graphs.rs index e775224f4a..c8ff49f8e0 100644 --- a/cutile-rs/cutile-examples/examples/cuda_graphs.rs +++ b/cutile-rs/cutile-examples/examples/cuda_graphs.rs @@ -17,7 +17,7 @@ * cargo run -p cutile-examples --example cuda_graphs */ -use cuda_core::{Device, Stream}; +use cuda_core::{Context, Stream}; use cutile::error::Error; use cutile::prelude::*; use std::time::Instant; @@ -160,7 +160,7 @@ impl GraphModel { let mut buffers: Vec<_> = (0..cfg.n_layers) .map(|_| LayerBuffers::allocate(cfg.d, stream)) .collect::>()?; - unsafe { stream.synchronize() }?; + stream.synchronize()?; // Capture the forward pass as a CUDA graph. Each s.record() // records a graph node, releasing borrows between kernels. @@ -291,7 +291,7 @@ fn main() -> Result<(), Error> { return Ok(()); } - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let cfg = Config { diff --git a/cutile-rs/cutile-examples/examples/cuda_graphs_deviceop.rs b/cutile-rs/cutile-examples/examples/cuda_graphs_deviceop.rs index 799112820b..7aa00f609e 100644 --- a/cutile-rs/cutile-examples/examples/cuda_graphs_deviceop.rs +++ b/cutile-rs/cutile-examples/examples/cuda_graphs_deviceop.rs @@ -14,7 +14,7 @@ * cargo run -p cutile-examples --example cuda_graphs_deviceop */ -use cuda_core::{Device, Stream}; +use cuda_core::{Context, Stream}; use cutile::error::Error; use cutile::prelude::*; use std::time::Instant; @@ -167,7 +167,7 @@ impl GraphModel { let buffers: Vec<_> = (0..cfg.n_layers) .map(|_| LayerBuffers::allocate(cfg.d, stream)) .collect::>()?; - unsafe { stream.synchronize() }?; + stream.synchronize()?; // Create an Arc that shares input's device memory for build_forward. // This requires aliased storage (input + input_arc point to same @@ -351,7 +351,7 @@ fn main() -> Result<(), Error> { return Ok(()); } - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let cfg = Config { diff --git a/cutile-rs/cutile-examples/examples/cudarc_interop.rs b/cutile-rs/cutile-examples/examples/cudarc_interop.rs index f3a57a20ee..6f7e275df9 100644 --- a/cutile-rs/cutile-examples/examples/cudarc_interop.rs +++ b/cutile-rs/cutile-examples/examples/cudarc_interop.rs @@ -20,7 +20,7 @@ use cuda_async::device_buffer::DeviceAllocation; use cuda_core::sys::CUdeviceptr; -use cuda_core::{free_async, malloc_async, memcpy_dtoh_async, memcpy_htod_async, Device, Stream}; +use cuda_core::{free_async, malloc_async, memcpy_dtoh_async, memcpy_htod_async, Context, Stream}; use cutile::error::Error; use cutile::prelude::*; use std::sync::Arc; @@ -43,7 +43,7 @@ mod foreign { Arc::new(Self { dptr, len_bytes, - device_id: stream.device().ordinal(), + device_id: stream.context().ordinal(), stream: stream.clone(), }) } @@ -61,6 +61,9 @@ mod foreign { // SAFETY: `dptr` is a live `len_bytes` device allocation on `device_id` for // this buffer's whole lifetime (it is freed only in `Drop`). unsafe impl DeviceAllocation for Buffer { + fn context(&self) -> std::sync::Arc { + self.stream.context().clone() + } fn device_ptr(&self) -> CUdeviceptr { self.dptr } @@ -97,7 +100,7 @@ fn main() -> Result<(), Error> { const N: usize = 1024; const TILE: usize = 128; - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; // The framework allocates and owns three buffers, and fills the inputs. diff --git a/cutile-rs/cutile-examples/examples/dropout.rs b/cutile-rs/cutile-examples/examples/dropout.rs index a9ebe4ba29..1210f549a6 100644 --- a/cutile-rs/cutile-examples/examples/dropout.rs +++ b/cutile-rs/cutile-examples/examples/dropout.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{rand, randn, zeros}; use cutile::error::Error; use cutile::tensor::{IntoPartition, Partition, Tensor, ToHostVec}; @@ -40,7 +40,7 @@ fn main() -> Result<(), Error> { return Ok(()); } - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let (m,) = (16,); let bm = 4; diff --git a/cutile-rs/cutile-examples/examples/flash_attention.rs b/cutile-rs/cutile-examples/examples/flash_attention.rs index 89174f048d..88c8443bdb 100644 --- a/cutile-rs/cutile-examples/examples/flash_attention.rs +++ b/cutile-rs/cutile-examples/examples/flash_attention.rs @@ -5,7 +5,7 @@ extern crate core; use cuda_async::device_operation::{DeviceOp, Unzippable6}; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{randn, zeros}; use cutile::error::Error; use cutile::tensor::{IntoPartition, Partition, Tensor, ToHostVec, Unpartition}; @@ -149,8 +149,8 @@ fn fmha( bn: usize, // k, v seq len part size. bbh: usize, // batch * num_heads part size. ) -> Result<(), Error> { - // Create a context. Device 0 is associated with the context. - let device = Device::new(0)?; + // Create the primary context for GPU 0. + let device = Context::new(0)?; // Create a new stream on which we run CUDA operations. let stream = device.new_stream()?; @@ -207,7 +207,7 @@ fn fmha( .reshape(((), m, d)) .expect("Failed to reshape."); let out_candle = - candle_core::Tensor::from_slice(&out_vec, &[b * h, m, d], &candle_core::Device::Cpu) + candle_core::Tensor::from_slice(&out_vec, &[b * h, m, d], &candle_core::Context::Cpu) .unwrap(); println!("out shape = {:?}", out_candle.shape()); for i in 0..(b * h) { diff --git a/cutile-rs/cutile-examples/examples/flash_attention_causal.rs b/cutile-rs/cutile-examples/examples/flash_attention_causal.rs index 6a532aa284..c6c583bec9 100644 --- a/cutile-rs/cutile-examples/examples/flash_attention_causal.rs +++ b/cutile-rs/cutile-examples/examples/flash_attention_causal.rs @@ -5,7 +5,7 @@ extern crate core; use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{randn, zeros}; use cutile::error::Error; use cutile::tensor::{IntoPartition, Partition, Tensor, ToHostVec}; @@ -206,7 +206,7 @@ fn fmha_ref_cpu( } fn run_attention_fmha(causal: bool) -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let (batch, heads, heads_kv, seq_len, head_dim) = (2usize, 8usize, 8usize, 64usize, 32usize); diff --git a/cutile-rs/cutile-examples/examples/gemm.rs b/cutile-rs/cutile-examples/examples/gemm.rs index ccd6c595b1..861ce2ff59 100644 --- a/cutile-rs/cutile-examples/examples/gemm.rs +++ b/cutile-rs/cutile-examples/examples/gemm.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ use cuda_async::device_operation::*; -use cuda_core::Device; +use cuda_core::Context; use cutile::api; use cutile::error::Error; use cutile::tensor::*; @@ -37,7 +37,7 @@ mod my_module { } fn gemm() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let scale = 2usize.pow(10); // On the order of megabytes. let (bm, bn, bk) = (16, 16, 8); diff --git a/cutile-rs/cutile-examples/examples/gemm_static.rs b/cutile-rs/cutile-examples/examples/gemm_static.rs index ae112beeac..e93af84123 100644 --- a/cutile-rs/cutile-examples/examples/gemm_static.rs +++ b/cutile-rs/cutile-examples/examples/gemm_static.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ use cuda_async::device_operation::*; -use cuda_core::Device; +use cuda_core::Context; use cutile::api; use cutile::error::Error; use cutile::tensor::*; @@ -47,7 +47,7 @@ mod my_module { } fn gemm() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let scale = 2usize.pow(10); // On the order of megabytes. let (bm, bn, bk) = (16, 16, 8); diff --git a/cutile-rs/cutile-examples/examples/hello_world.rs b/cutile-rs/cutile-examples/examples/hello_world.rs index a28314d02a..0f7862ec90 100644 --- a/cutile-rs/cutile-examples/examples/hello_world.rs +++ b/cutile-rs/cutile-examples/examples/hello_world.rs @@ -5,7 +5,7 @@ #![allow(unused_variables)] use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::error::Error; use cutile::tile_kernel::TileKernel; @@ -41,7 +41,7 @@ fn main() -> Result<(), Error> { return Ok(()); } - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let launcher = hello_world_kernel(); launcher.grid((1, 1, 1)).sync_on(&stream)?; diff --git a/cutile-rs/cutile-examples/examples/nvfp4_moe.rs b/cutile-rs/cutile-examples/examples/nvfp4_moe.rs index a739d32cfe..d1820c3f58 100644 --- a/cutile-rs/cutile-examples/examples/nvfp4_moe.rs +++ b/cutile-rs/cutile-examples/examples/nvfp4_moe.rs @@ -23,7 +23,7 @@ use cuda_async::cuda_graph::CudaGraph; use cuda_async::device_operation::{DeviceOp, GraphNode}; -use cuda_core::{Device, Stream}; +use cuda_core::{Context, Stream}; use cutile::api; use cutile::cuda_core::{f4e2m1fnx2, f8e4m3fn}; use cutile::half::{bf16, f16}; @@ -1816,8 +1816,8 @@ fn time_graph( graph: &CudaGraph<()>, stream: &Arc, ) -> Result> { - let start = stream.device().new_event()?; - let stop = stream.device().new_event()?; + let start = stream.context().new_event()?; + let stop = stream.context().new_event()?; let timing = (|| -> Result> { // SAFETY: the graph retains its buffers and remains alive throughout // these same-stream launches. The stream is drained below on success @@ -1848,7 +1848,7 @@ fn main() -> Result<(), Box> { return Ok(()); } - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; println!("NVFP4 MoE batch-size benchmark"); println!("H={HIDDEN}, I={INTERMEDIATE}, experts={NUM_EXPERTS}, top-k={TOP_K}, tile_n={TILE_N}"); diff --git a/cutile-rs/cutile-examples/examples/pdl.rs b/cutile-rs/cutile-examples/examples/pdl.rs index 7899d8389e..d3de4fd69e 100644 --- a/cutile-rs/cutile-examples/examples/pdl.rs +++ b/cutile-rs/cutile-examples/examples/pdl.rs @@ -19,7 +19,7 @@ * cargo run -p cutile-examples --example pdl */ -use cuda_core::Device; +use cuda_core::Context; use cutile::error::Error; use cutile::prelude::*; @@ -58,7 +58,7 @@ fn main() -> Result<(), Error> { return Ok(()); } - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let staging = api::zeros::(&[N]).sync_on(&stream)?; let output = api::zeros::(&[N]).sync_on(&stream)?; diff --git a/cutile-rs/cutile-examples/examples/rms_norm.rs b/cutile-rs/cutile-examples/examples/rms_norm.rs index 770f529ce1..a99c53af7d 100644 --- a/cutile-rs/cutile-examples/examples/rms_norm.rs +++ b/cutile-rs/cutile-examples/examples/rms_norm.rs @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ use cuda_async::device_operation::DeviceOp; -use cuda_core::Device; +use cuda_core::Context; use cutile::api::{randn, zeros}; use cutile::error::Error; use cutile::tensor::{IntoPartition, Partition, Tensor, ToHostVec}; @@ -67,8 +67,8 @@ fn main() -> Result<(), Error> { return Ok(()); } - // Create a context. Device 0 is associated with the context. - let device = Device::new(0)?; + // Create the primary context for GPU 0. + let device = Context::new(0)?; // Create a new stream on which we run CUDA operations. let stream = device.new_stream()?; let (m, n) = (4, 8); diff --git a/cutile-rs/cutile-examples/src/lib.rs b/cutile-rs/cutile-examples/src/lib.rs index 3ed97a27a1..a636f2e566 100644 --- a/cutile-rs/cutile-examples/src/lib.rs +++ b/cutile-rs/cutile-examples/src/lib.rs @@ -14,12 +14,12 @@ use candle_nn::ops::softmax; #[cfg(feature = "reference-cpu")] use cuda_core::DType; -use cuda_core::{get_device_clock_rate, Device}; +use cuda_core::{get_device_clock_rate, Context}; /// Convert a host slice to a candle CPU tensor. #[cfg(feature = "reference-cpu")] pub fn to_candle_tensor(data: &[T], shape: &[usize]) -> candle_core::Tensor { - candle_core::Tensor::from_slice(data, shape, &candle_core::Device::Cpu).unwrap() + candle_core::Tensor::from_slice(data, shape, &candle_core::Context::Cpu).unwrap() } /// Prints a 2D candle tensor in a formatted table for debugging. @@ -77,11 +77,11 @@ pub fn fmha_ref_exec( sm_scale: T, ) -> candle_core::Tensor { let q_host = - candle_core::Tensor::from_slice(q_data, q_shape, &candle_core::Device::Cpu).unwrap(); + candle_core::Tensor::from_slice(q_data, q_shape, &candle_core::Context::Cpu).unwrap(); let k_host = - candle_core::Tensor::from_slice(k_data, k_shape, &candle_core::Device::Cpu).unwrap(); + candle_core::Tensor::from_slice(k_data, k_shape, &candle_core::Context::Cpu).unwrap(); let v_host = - candle_core::Tensor::from_slice(v_data, v_shape, &candle_core::Device::Cpu).unwrap(); + candle_core::Tensor::from_slice(v_data, v_shape, &candle_core::Context::Cpu).unwrap(); let k_trans = k_host.transpose(2, 3).expect("Failed to transpose k."); let qk = q_host .broadcast_matmul(&k_trans) @@ -134,7 +134,7 @@ pub fn rtx_5090_tensorcore_f16_sol_tflops_at(clock_speed: f64) -> f64 { /// Returns RTX 5090 theoretical peak f16 tensor core TFLOPS using the device's clock rate. pub fn rtx_5090_tensorcore_f16_sol_tflops(device_id: usize) -> f64 { - let device = Device::new(device_id).unwrap(); + let device = Context::new(device_id).unwrap(); let clock_rate = unsafe { get_device_clock_rate(device.cu_device()).unwrap() } as f64; rtx_5090_tensorcore_f16_sol_tflops_at(clock_rate) } @@ -142,11 +142,11 @@ pub fn rtx_5090_tensorcore_f16_sol_tflops(device_id: usize) -> f64 { #[cfg(test)] mod test_peak { use crate::rtx_5090_tensorcore_f16_sol_tflops_at; - use cuda_core::{get_device_clock_rate, Device}; + use cuda_core::{get_device_clock_rate, Context}; #[test] fn test_5090() { - let device = Device::new(0).unwrap(); + let device = Context::new(0).unwrap(); // This appears to be correct / matches architecture documentation. let clock_rate = unsafe { get_device_clock_rate(device.cu_device()).unwrap() } as f64; let clock_mhz = clock_rate * 1e-3; diff --git a/cutile-rs/cutile-macro/src/_module.rs b/cutile-rs/cutile-macro/src/_module.rs index a601b6cda3..bce690e9a3 100644 --- a/cutile-rs/cutile-macro/src/_module.rs +++ b/cutile-rs/cutile-macro/src/_module.rs @@ -403,7 +403,7 @@ fn module_inner( use #tile_rust_crate_root::tile_kernel::{*}; use #tile_rust_crate_root::cuda_async::error::{*}; use #tile_rust_crate_root::cuda_async::scheduling_policies::SchedulingPolicy; - use #tile_rust_crate_root::cuda_core::{Device, Function, Module, Stream, DriverError, LaunchConfig}; + use #tile_rust_crate_root::cuda_core::{Context, Function, Module, Stream, DriverError, LaunchConfig}; // use #tile_rust_crate_root::cutile_compiler::cuda_tile::ModuleOperation; // use #tile_rust_crate_root::cutile_compiler::compiler::{CUDATileModules, CUDATileFunctionCompiler}; // Module asts and generated type data. diff --git a/cutile-rs/cutile/src/api.rs b/cutile-rs/cutile/src/api.rs index 6e70bc4ad4..2219f41a6a 100644 --- a/cutile-rs/cutile/src/api.rs +++ b/cutile-rs/cutile/src/api.rs @@ -180,7 +180,7 @@ impl DeviceOp for CopyDeviceToDevice { let tensor = Tensor::from_raw_parts( dst, num_bytes, - ctx.get_device_id(), + ctx.get_cuda_stream().clone(), self.shape, self.strides, ); @@ -349,7 +349,7 @@ impl DeviceOp for CopyDeviceToHostVec { }; // `execute` exposes a Vec to host-side combinators immediately. // Prove initialization here, independent of pageable-copy behavior. - if let Err(error) = unsafe { ctx.get_cuda_stream().synchronize() } { + if let Err(error) = ctx.get_cuda_stream().synchronize() { std::mem::forget(host); return Err(error.into()); } @@ -417,7 +417,7 @@ impl DeviceOp for CopyHostVecToDevice { let tensor = Tensor::from_raw_parts( dptr, element_size * num_elements, - ctx.get_device_id(), + ctx.get_cuda_stream().clone(), shape.clone(), strides.clone(), ); @@ -740,7 +740,7 @@ impl DeviceOp for AllocUninitialized { Tensor::from_raw_parts( ptr, num_bytes, - ctx.get_device_id(), + ctx.get_cuda_stream().clone(), vec![self.len as i32], vec![1], ) diff --git a/cutile-rs/cutile/src/bench.rs b/cutile-rs/cutile/src/bench.rs index f6f62781c3..26b1e83b2a 100644 --- a/cutile-rs/cutile/src/bench.rs +++ b/cutile-rs/cutile/src/bench.rs @@ -131,7 +131,7 @@ impl L2Clear { /// Twice the L2 size flushes reliably; clamp keeps pathological /// attribute readings from allocating absurd buffers. fn new(stream: &Arc) -> Result { - let l2 = stream.device().l2_cache_size_bytes().unwrap_or(0); + let l2 = stream.context().l2_cache_size_bytes().unwrap_or(0); let num_bytes = (l2 * 2).clamp(64 << 20, 512 << 20); // Safety: freed in Drop on the same stream; never exposed. let dptr = unsafe { cuda_core::malloc_async(num_bytes, stream) }?; @@ -165,7 +165,7 @@ fn time_one(stream: &Arc, f: &mut F) -> Result where F: FnMut(&Arc) -> Result<(), Error>, { - let device = stream.device(); + let device = stream.context(); let start = device.new_event()?; let end = device.new_event()?; start.record(stream)?; diff --git a/cutile-rs/cutile/src/prelude.rs b/cutile-rs/cutile/src/prelude.rs index bb5c1f3700..ed74a3b408 100644 --- a/cutile-rs/cutile/src/prelude.rs +++ b/cutile-rs/cutile/src/prelude.rs @@ -29,7 +29,7 @@ pub use crate::tensor::{ pub use crate::tile_kernel::{PartitionOp, TileKernel, ToHostVecOp}; // Common types from cuda-core -pub use cuda_core::{DType, Device}; +pub use cuda_core::{Context, DType}; // Common dependencies pub use std::sync::Arc; diff --git a/cutile-rs/cutile/src/tensor.rs b/cutile-rs/cutile/src/tensor.rs index 845af6c6c1..ae6e22e7fd 100644 --- a/cutile-rs/cutile/src/tensor.rs +++ b/cutile-rs/cutile/src/tensor.rs @@ -564,6 +564,13 @@ impl Storage { "tensor and execution stream are on different devices".into(), )); } + if let Allocation::Device(buffer) = &self.allocation { + if buffer.context().as_ref() != ctx.context().as_ref() { + return Err(DeviceError::Internal( + "tensor and execution stream belong to different CUDA contexts".into(), + )); + } + } let id = self.register_access( ctx.get_cuda_stream().cu_stream() as usize, write, @@ -618,8 +625,21 @@ impl Storage { "tensor has a conflicting in-flight access on another stream; await its operation before reusing it".into(), )); } + let allocation_lease = match &self.allocation { + Allocation::Device(buffer) => Some( + buffer + .acquire_on_stream(stream, write, recording) + .map_err(|error| { + DeviceError::Internal(format!( + "allocation has a conflicting in-flight access: {error}" + )) + })?, + ), + Allocation::Meta { .. } => None, + }; let id = NEXT_ACCESS_ID.fetch_add(1, AtomicOrdering::Relaxed); accesses.push(StorageAccess { + _allocation_lease: allocation_lease, id, stream, write, @@ -632,7 +652,11 @@ impl Storage { let accesses = self.accesses.lock().unwrap_or_else(|e| e.into_inner()); // Each lease has exactly one internal Arc. Only user-visible aliases // prevent partitioning; same-stream leases are ordered on submission. - Arc::strong_count(self) == 1 + accesses.len() + let allocation_unique = match &self.allocation { + Allocation::Device(buffer) => buffer.is_unique(), + Allocation::Meta { .. } => true, + }; + allocation_unique && Arc::strong_count(self) == 1 + accesses.len() } /// 16-aligned sentinel address fed to [`compute_spec`] for meta tensors. @@ -691,6 +715,7 @@ static NEXT_ACCESS_ID: AtomicU64 = AtomicU64::new(1); #[derive(Debug)] struct StorageAccess { + _allocation_lease: Option, id: u64, stream: usize, write: bool, @@ -983,18 +1008,92 @@ impl Tensor { } } + /// Consumes a typed host-runtime buffer as a contiguous tensor without copying. + /// Shape must describe exactly the buffer's element count. + pub fn from_buffer(buffer: cuda_core::DeviceBuffer, shape: Vec) -> Self + where + T: cuda_core::DeviceCopy, + { + let len = buffer.len(); + let strides = contiguous_strides(&shape); + let tensor = Self::from_device_buffer(buffer.into_storage(), shape, strides); + assert_eq!( + tensor.size(), + len, + "tensor shape must match the buffer's element count" + ); + tensor + } + + /// Returns a typed buffer view of contiguous tensor storage without copying. + /// Requires unique tensor ownership; otherwise an element cast could mutate + /// bytes still exposed through an alias with a different element type. + pub fn into_buffer(self) -> cuda_core::DeviceBuffer + where + T: cuda_core::DeviceCopy, + { + assert!( + self.storage.is_unique(), + "cannot transfer aliased tensor storage to a typed buffer" + ); + assert!( + self.is_contiguous(), + "a strided tensor cannot become a contiguous buffer" + ); + let Allocation::Device(buffer) = &self.storage.allocation else { + panic!("metadata-only tensors have no device buffer"); + }; + // SAFETY: this tensor holds valid T representations and the same shared + // owner/access tracker protects every outstanding alias and submission. + unsafe { + cuda_core::DeviceBuffer::from_storage_copy( + buffer + .slice_bytes(0, self.num_bytes()) + .expect("tensor extent"), + self.size(), + ) + } + .expect("tensor storage must match its typed extent") + } + + /// Borrows contiguous tensor storage for a typed SIMT kernel argument. + /// The view retains the same allocation and access tracker without copying. + pub fn as_buffer(&self) -> Result, Error> + where + T: cuda_core::DeviceCopy, + { + if !self.is_contiguous() { + return tensor_error_result("strided tensor cannot become a contiguous buffer view"); + } + let Allocation::Device(buffer) = &self.storage.allocation else { + return tensor_error_result("metadata-only tensors have no device buffer"); + }; + // SAFETY: tensor validity and access tracking apply to this borrowed view. + unsafe { cuda_core::DeviceBufferView::borrow_storage(buffer, 0, self.size()) } + .map_err(Into::into) + } + + /// The actual CUDA context owning this tensor's storage. + /// Panics for metadata-only tensors, which have no CUDA resource. + pub fn context(&self) -> &Arc { + match &self.storage.allocation { + Allocation::Device(buffer) => buffer.context(), + Allocation::Meta { .. } => panic!("metadata-only tensors have no CUDA context"), + } + } + /// Rebuilds a tensor from raw device allocation parts and validates the metadata /// against the provided byte length before taking ownership of the pointer. pub unsafe fn from_raw_parts( dptr: CUdeviceptr, len_bytes: usize, - device_id: usize, + stream: Arc, shape: Vec, strides: Vec, ) -> Self { Self::assert_valid_metadata(&shape, &strides, len_bytes); Self::from_device_buffer( - DeviceBuffer::from_raw_parts(dptr, len_bytes, device_id), + DeviceBuffer::from_raw_parts_async(dptr, len_bytes, stream), shape, strides, ) @@ -1047,18 +1146,18 @@ impl Tensor { /// store only `0` or `1`, since host code reads the bytes back as `bool` /// without validation. /// - /// [`Device::borrow_raw`]: cuda_core::Device::borrow_raw + /// [`Context::borrow_raw`]: cuda_core::Context::borrow_raw /// [`Stream::borrow_raw`]: cuda_core::Stream::borrow_raw pub unsafe fn borrow_raw_parts( dptr: CUdeviceptr, - device_id: usize, + context: Arc, shape: Vec, strides: Vec, ) -> Self { let len_bytes = checked_num_bytes_i32::(&shape) .expect("Tensor shape contains invalid dimensions or overflows."); Self::from_device_buffer( - DeviceBuffer::borrowed_from_raw_parts(dptr, len_bytes, device_id), + DeviceBuffer::borrowed_from_raw_parts(dptr, len_bytes, context), shape, strides, ) @@ -1080,7 +1179,7 @@ impl Tensor { /// /// # Safety /// Everything positional is verified at construction: the pointer, length, - /// and device ordinal come from `owner`'s one-time + /// and CUDA context come from `owner`'s one-time /// [`DeviceAllocation`] assertion; liveness is the held refcount; and the /// shape/stride addressable extent is checked (overflow-checked) against /// `owner.len_bytes()` right here. What cannot be verified at any call @@ -1100,6 +1199,10 @@ impl Tensor { /// floating-point `T`, but a `Tensor` over foreign memory requires /// the owner to store only `0` or `1`, because host code reads the bytes /// back as `bool` without validation. + /// - Derived typed buffers may change their element representation. The + /// caller must preserve validity for any external typed aliases after + /// those writes too, even when accesses are separated in time. Retaining + /// an owner proves liveness, not exclusive ownership of its typed views. /// /// Constructing two tensors over the same allocation and using either as /// a mutable output is a data race the type system cannot see: distinct @@ -1468,6 +1571,25 @@ pub struct TensorView<'a, T: DType> { } impl<'a, T: DType> TensorView<'a, T> { + /// Borrows this contiguous slice for a typed SIMT kernel argument, preserving + /// its byte offset and the base allocation's context and access tracker. + pub fn as_buffer(&self) -> Result, Error> + where + T: cuda_core::DeviceCopy, + { + if self.strides != contiguous_strides(&self.shape) { + return tensor_error_result("strided tensor cannot become a contiguous buffer view"); + } + let Allocation::Device(buffer) = &self.base.storage.allocation else { + return tensor_error_result("metadata-only tensors have no device buffer"); + }; + // SAFETY: slicing validated the extent; the parent tensor guarantees T + // validity and this view shares its allocation and access tracker. + unsafe { + cuda_core::DeviceBufferView::borrow_storage(buffer, self.offset_bytes, self.size()) + } + .map_err(Into::into) + } pub fn shape(&self) -> &[i32] { &self.shape } @@ -2399,6 +2521,9 @@ mod tests { len_bytes: usize, } unsafe impl DeviceAllocation for FakeAlloc { + fn context(&self) -> std::sync::Arc { + unsafe { cuda_core::Context::borrow_raw(0x100usize as *mut _, 0, 0) } + } fn device_ptr(&self) -> CUdeviceptr { 16 // 16-aligned sentinel; not dereferenced in from_foreign's spec calc } diff --git a/cutile-rs/cutile/tests/autotune.rs b/cutile-rs/cutile/tests/autotune.rs index 25d1764bbb..1e20be99d7 100644 --- a/cutile-rs/cutile/tests/autotune.rs +++ b/cutile-rs/cutile/tests/autotune.rs @@ -7,7 +7,7 @@ #![cfg(feature = "experimental-tune")] -use cuda_core::Device; +use cuda_core::Context; use cutile::bench::BenchOptions; use cutile::prelude::*; use cutile::tune::{Autotuner, Config, ParamValue, TrialState}; @@ -29,7 +29,7 @@ fn quick_bench() -> BenchOptions { /// a winner produced, JSONL log written and resumable. #[test] fn end_to_end_grid_tune_on_gpu() { - let device = Device::new(0).expect("device 0"); + let device = Context::new(0).expect("device 0"); let stream = device.new_stream().expect("stream"); let configs: Vec = [1usize << 16, 1 << 20, 0] @@ -129,7 +129,7 @@ mod tune_test_module { fn record_end_to_end_with_real_l2_verification() { use cutile::tune::{Record, RecordEntry, Workspace}; - let device = Device::new(0).expect("device 0"); + let device = Context::new(0).expect("device 0"); let stream = device.new_stream().expect("stream"); let n: usize = 1 << 18; diff --git a/cutile-rs/cutile/tests/do_bench.rs b/cutile-rs/cutile/tests/do_bench.rs index 9ff82410bc..634df09747 100644 --- a/cutile-rs/cutile/tests/do_bench.rs +++ b/cutile-rs/cutile/tests/do_bench.rs @@ -5,7 +5,7 @@ //! GPU integration tests for `cutile::bench` (device-event timing). -use cuda_core::Device; +use cuda_core::Context; use cutile::bench::{do_bench, do_bench_paired, BenchOptions}; use cutile::prelude::*; use std::time::Duration; @@ -22,7 +22,7 @@ fn quick_opts() -> BenchOptions { #[test] fn do_bench_times_a_kernel() { - let device = Device::new(0).expect("device 0"); + let device = Context::new(0).expect("device 0"); let stream = device.new_stream().expect("stream"); let result = do_bench(&stream, &quick_opts(), |s| { @@ -45,7 +45,7 @@ fn do_bench_times_a_kernel() { #[test] fn do_bench_paired_runs_equal_reps() { - let device = Device::new(0).expect("device 0"); + let device = Context::new(0).expect("device 0"); let stream = device.new_stream().expect("stream"); let (a, b) = do_bench_paired( @@ -73,7 +73,7 @@ fn do_bench_paired_runs_equal_reps() { #[test] fn closure_errors_propagate() { - let device = Device::new(0).expect("device 0"); + let device = Context::new(0).expect("device 0"); let stream = device.new_stream().expect("stream"); let err = do_bench(&stream, &quick_opts(), |_| { diff --git a/cutile-rs/cutile/tests/gpu/add_refs.rs b/cutile-rs/cutile/tests/gpu/add_refs.rs index 3cd947b34d..b073a72f4f 100644 --- a/cutile-rs/cutile/tests/gpu/add_refs.rs +++ b/cutile-rs/cutile/tests/gpu/add_refs.rs @@ -31,7 +31,7 @@ use my_module::add; #[test] fn smoke_add_refs() { common::with_test_stack(|| { - let device = cuda_core::Device::new(0).unwrap(); + let device = cuda_core::Context::new(0).unwrap(); let stream = device.new_stream().unwrap(); let x = api::ones::(&[32]).sync_on(&stream).unwrap(); diff --git a/cutile-rs/cutile/tests/gpu/atomic_red_view.rs b/cutile-rs/cutile/tests/gpu/atomic_red_view.rs index dd5e263217..80e6e1caa5 100644 --- a/cutile-rs/cutile/tests/gpu/atomic_red_view.rs +++ b/cutile-rs/cutile/tests/gpu/atomic_red_view.rs @@ -44,7 +44,7 @@ fn atomic_red_view_accumulates_across_blocks() { if !common::supports_tile_ir(&[cutile_ir::requirements::Feature::AtomicRedView]) { return; } - let device = cuda_core::Device::new(0).expect("device"); + let device = cuda_core::Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); const BLOCKS: usize = 32; diff --git a/cutile-rs/cutile/tests/gpu/borrow_raw_parts.rs b/cutile-rs/cutile/tests/gpu/borrow_raw_parts.rs index b10a8b7fae..678862fef1 100644 --- a/cutile-rs/cutile/tests/gpu/borrow_raw_parts.rs +++ b/cutile-rs/cutile/tests/gpu/borrow_raw_parts.rs @@ -22,9 +22,8 @@ use crate::common; fn borrow_raw_parts_does_not_free_foreign_memory() { common::with_test_stack(|| { let _policy = global_policy(0); - let device = cuda_core::Device::new(0).expect("device"); + let device = cuda_core::Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); - let ordinal = device.ordinal(); const N: usize = 256; let bytes = N * std::mem::size_of::(); @@ -42,8 +41,14 @@ fn borrow_raw_parts_does_not_free_foreign_memory() { // tensor would free `mem` on the first drop, making borrows 2 and 3 // use-after-free; a borrowed tensor leaves `mem` untouched. for _ in 0..3 { - let t = - unsafe { Tensor::::borrow_raw_parts(mem, ordinal, vec![N as i32], vec![1]) }; + let t = unsafe { + Tensor::::borrow_raw_parts( + mem, + stream.context().clone(), + vec![N as i32], + vec![1], + ) + }; let out = t .to_host_vec() .sync_on(&stream) @@ -88,6 +93,9 @@ impl Drop for Owner { // SAFETY: `dptr` is a live `len_bytes` allocation on `device_id` until `Owner` drops. unsafe impl DeviceAllocation for Owner { + fn context(&self) -> std::sync::Arc { + self.stream.context().clone() + } fn device_ptr(&self) -> CUdeviceptr { self.dptr } @@ -103,7 +111,7 @@ unsafe impl DeviceAllocation for Owner { fn from_foreign_keep_alive_holds_owner() { common::with_test_stack(|| { let _policy = global_policy(0); - let device = cuda_core::Device::new(0).expect("device"); + let device = cuda_core::Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); const N: usize = 256; @@ -150,6 +158,6 @@ fn from_foreign_keep_alive_holds_owner() { dropped.load(Ordering::SeqCst), "owner not dropped after the last borrowing tensor was dropped" ); - unsafe { stream.synchronize().expect("drain free") }; + stream.synchronize().expect("drain free"); }); } diff --git a/cutile-rs/cutile/tests/gpu/global_counter.rs b/cutile-rs/cutile/tests/gpu/global_counter.rs index da56aaf3e1..b00b2cdf16 100644 --- a/cutile-rs/cutile/tests/gpu/global_counter.rs +++ b/cutile-rs/cutile/tests/gpu/global_counter.rs @@ -45,7 +45,7 @@ mod atomic_counter_kernels { fn atomic_global_increments_are_unique_across_tile_programs() { common::with_test_stack(|| { const N: usize = 1024; - let device = cuda_core::Device::new(0).expect("device"); + let device = cuda_core::Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let mut out = api::zeros::(&[N]).sync_on(&stream).expect("zeros"); // Same specialization twice: test uniqueness under contention and @@ -66,7 +66,7 @@ use global_kernels::update_counter_ordered; #[test] fn smoke_global_counter_ordered() { common::with_test_stack(|| { - let device = cuda_core::Device::new(0).expect("device"); + let device = cuda_core::Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let mut first = api::zeros::(&[1]).sync_on(&stream).expect("zeros"); diff --git a/cutile-rs/cutile/tests/gpu/graph_scope_inputs.rs b/cutile-rs/cutile/tests/gpu/graph_scope_inputs.rs index f2a306618f..868ff067cd 100644 --- a/cutile-rs/cutile/tests/gpu/graph_scope_inputs.rs +++ b/cutile-rs/cutile/tests/gpu/graph_scope_inputs.rs @@ -37,7 +37,7 @@ use graph_scope_module::add; #[test] fn pre_allocated_inputs_record_and_replay() { common::with_test_stack(|| { - let device = cuda_core::Device::new(0).expect("device"); + let device = cuda_core::Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let a = api::arange::(8).sync_on(&stream).expect("a"); diff --git a/cutile-rs/cutile/tests/gpu/inter_module.rs b/cutile-rs/cutile/tests/gpu/inter_module.rs index 2205344835..7e48701f6f 100644 --- a/cutile-rs/cutile/tests/gpu/inter_module.rs +++ b/cutile-rs/cutile/tests/gpu/inter_module.rs @@ -56,7 +56,8 @@ use my_kernels::{apply_relu, apply_relu_square}; #[test] fn smoke_inter_module() { common::with_test_stack(|| { - let device: std::sync::Arc = cuda_core::Device::new(0).expect("device"); + let device: std::sync::Arc = + cuda_core::Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let block: usize = 64; let n: usize = 128; diff --git a/cutile-rs/cutile/tests/gpu/submission_lifetimes.rs b/cutile-rs/cutile/tests/gpu/submission_lifetimes.rs index 60fb31b5d3..9336d7d624 100644 --- a/cutile-rs/cutile/tests/gpu/submission_lifetimes.rs +++ b/cutile-rs/cutile/tests/gpu/submission_lifetimes.rs @@ -30,6 +30,9 @@ struct Allocation(Tensor); // SAFETY: the owned tensor has a stable, live allocation. The test's rescue // handle is used only to observe refcounts, never to access its GPU bytes. unsafe impl DeviceAllocation for Allocation { + fn context(&self) -> std::sync::Arc { + self.0.context().clone() + } fn device_ptr(&self) -> u64 { self.0.device_pointer().cu_deviceptr() } @@ -81,7 +84,7 @@ impl Gate { let expired_flag = expired.clone(); GATES_ARMED.fetch_add(1, std::sync::atomic::Ordering::SeqCst); *LAST_GATE_ARMED_AT.lock().unwrap() = Some(std::time::Instant::now()); - unsafe { + { stream .launch_host_function(move || { GATES_STARTED.fetch_add(1, std::sync::atomic::Ordering::SeqCst); @@ -138,7 +141,7 @@ fn assert_gated_pending( panic!( "gated submission completed on the first poll while its Gate should still be blocking the stream (newest gate armed {age:?} ago; gates armed: {armed}, callbacks started: {}, finished: {finished}, wait outcomes: {outcomes:?}, stream query now: {:?})", GATES_STARTED.load(std::sync::atomic::Ordering::SeqCst), - unsafe { stream.query() }, + stream.query(), ) } Poll::Ready(Err(e)) => panic!("gated submission failed on the first poll: {e}"), @@ -155,7 +158,7 @@ fn forget_pending(op: O, stream: &Arc, gate: &Ga fn on_gpu(f: impl FnOnce(Arc, Arc) + Send + 'static) { crate::common::with_test_stack(move || { - let device = cuda_core::Device::new(0).unwrap(); + let device = cuda_core::Context::new(0).unwrap(); let stream = device.new_stream().unwrap(); let other = device.new_stream().unwrap(); let src = api::ones::(&[32]).sync_on(&stream).unwrap(); @@ -176,11 +179,9 @@ fn on_gpu(f: impl FnOnce(Arc, Arc) + Send let _ = api::dup(&src).sync_on(&stream).unwrap(); api::memcpy(&mut dst, &src).sync_on(&stream).unwrap(); // Initialize the completion backend before placing any work behind a gate. - unsafe { - stream - .launch_host_function(|| std::thread::sleep(Duration::from_millis(10))) - .unwrap() - }; + stream + .launch_host_function(|| std::thread::sleep(Duration::from_millis(10))) + .unwrap(); block_on(DeviceFuture::scheduled( value(()), ExecutionContext::new(stream.clone()), @@ -220,7 +221,7 @@ fn forgotten_borrowed_kernel_retains_inputs_outputs_and_excludes_conflicts() { "borrowed output was released after recover" ); drop(gate); - unsafe { stream.synchronize().unwrap() }; + stream.synchronize().unwrap(); }); } @@ -241,7 +242,7 @@ fn forgotten_view_and_mapped_output_keep_their_storage() { assert!(Arc::strong_count(&src_owner) > 1); assert!(Arc::strong_count(&dst_owner) > 1); drop(gate); - unsafe { stream.synchronize().unwrap() }; + stream.synchronize().unwrap(); }); } @@ -256,7 +257,7 @@ fn forgotten_memcpy_keeps_both_allocations() { assert!(Arc::strong_count(&src_owner) > 1); assert!(Arc::strong_count(&dst_owner) > 1); drop(gate); - unsafe { stream.synchronize().unwrap() }; + stream.synchronize().unwrap(); }); } @@ -304,7 +305,7 @@ fn projected_dup_keeps_source_until_submission_completes() { forget_pending(op, &stream, &gate); assert!(Arc::strong_count(&owner) > 1); drop(gate); - unsafe { stream.synchronize().unwrap() }; + stream.synchronize().unwrap(); }); } @@ -394,7 +395,7 @@ fn graph_replay_retains_projected_storage_and_releases_launch_accesses() { assert!(Arc::strong_count(&src_owner) > 1); assert!(Arc::strong_count(&dst_owner) > 1); drop(gate); - unsafe { other.synchronize().unwrap() }; + other.synchronize().unwrap(); }); } diff --git a/cutile-rs/cutile/tests/gpu/tensor.rs b/cutile-rs/cutile/tests/gpu/tensor.rs index 5d369c3f6f..6e783ad5f6 100644 --- a/cutile-rs/cutile/tests/gpu/tensor.rs +++ b/cutile-rs/cutile/tests/gpu/tensor.rs @@ -19,7 +19,7 @@ fn reinterpret_rejects_misaligned_storage() { Tensor::::from_raw_parts( base.device_pointer().cu_deviceptr() + 1, 4, - base.device_id(), + base.context().default_stream(), vec![4], vec![1], ) @@ -42,7 +42,7 @@ fn from_raw_parts_rejects_shape_storage_mismatch() { Tensor::::from_raw_parts( base.device_pointer().cu_deviceptr(), 4, - base.device_id(), + base.context().default_stream(), vec![2], vec![1], ) diff --git a/cutile-rs/cutile/tests/gpu/tensor_slicing.rs b/cutile-rs/cutile/tests/gpu/tensor_slicing.rs index ccaa1df4e4..a591d43c0a 100644 --- a/cutile-rs/cutile/tests/gpu/tensor_slicing.rs +++ b/cutile-rs/cutile/tests/gpu/tensor_slicing.rs @@ -40,7 +40,7 @@ use my_module::{add, scale}; #[test] fn smoke_tensor_slicing() { common::with_test_stack(|| { - let device = cuda_core::Device::new(0).expect("device"); + let device = cuda_core::Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let block = 128; diff --git a/cutile-rs/cutile/tests/gpu/tile_ir_13_4.rs b/cutile-rs/cutile/tests/gpu/tile_ir_13_4.rs index f847fa81d5..7e500f07e5 100644 --- a/cutile-rs/cutile/tests/gpu/tile_ir_13_4.rs +++ b/cutile-rs/cutile/tests/gpu/tile_ir_13_4.rs @@ -293,7 +293,7 @@ mod coverage { #[test] fn launch_opt_in_checks_capabilities_even_during_warmup() { crate::common::with_test_stack(|| { - let device = cuda_core::Device::new(0).unwrap(); + let device = cuda_core::Context::new(0).unwrap(); let stream = device.new_stream().unwrap(); let caps = ToolkitCapabilities::for_device(0).unwrap(); // The empty consumer has no predecessor-dependent accesses. @@ -337,7 +337,7 @@ fn dependent_launch_waits_for_producer_data() { if !supports(&[Feature::ProgrammaticDependentLaunch]) { return; } - let device = cuda_core::Device::new(0).unwrap(); + let device = cuda_core::Context::new(0).unwrap(); let stream = device.new_stream().unwrap(); let input = api::zeros::(&[1]).sync_on(&stream).unwrap(); let output = api::zeros::(&[1]).sync_on(&stream).unwrap(); diff --git a/cutile-rs/cutile/tests/shared_host_buffers.rs b/cutile-rs/cutile/tests/shared_host_buffers.rs new file mode 100644 index 0000000000..e4fa400137 --- /dev/null +++ b/cutile-rs/cutile/tests/shared_host_buffers.rs @@ -0,0 +1,81 @@ +/* + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +use cuda_core::{Context, DeviceBuffer}; +use cutile::prelude::*; +use std::sync::Arc; + +#[cutile::module] +mod kernels { + use cutile::core::*; + #[cutile::entry] + fn double(out: &mut Tensor, input: &Tensor) { + out.store(load_tile_like(input, out) + load_tile_like(input, out)); + } +} + +#[test] +fn typed_buffer_tile_kernel_and_back_preserve_allocation() { + let context = Context::new(0).unwrap(); + let stream = context.new_stream().unwrap(); + let buffer = DeviceBuffer::from_host(&stream, &[3.0f32; 32]).unwrap(); + let pointer = buffer.cu_deviceptr(); + let identity = buffer.storage().allocation_id(); + let tensor = Tensor::from_buffer(buffer, vec![32]); + assert_eq!(tensor.as_buffer().unwrap().cu_deviceptr(), pointer); + assert_eq!( + tensor.as_buffer().unwrap().storage().allocation_id(), + identity + ); + assert_eq!(tensor.context(), &context); + let output = Tensor::from_buffer(DeviceBuffer::::zeroed(&stream, 32).unwrap(), vec![32]); + let output_pointer = output.as_buffer().unwrap().cu_deviceptr(); + let output = kernels::double(output.partition([32]), &tensor) + .sync_on(&stream) + .unwrap(); + let output = output.0.unpartition().into_buffer(); + assert_eq!(output.cu_deviceptr(), output_pointer); + assert_eq!(output.to_host_vec(&stream).unwrap(), vec![6.0; 32]); + let buffer = tensor.into_buffer(); + assert_eq!(buffer.cu_deviceptr(), pointer); + assert_eq!(buffer.storage().allocation_id(), identity); +} + +#[test] +fn tensor_slices_preserve_byte_offset_and_reject_strided_buffer_views() { + let context = Context::new(0).unwrap(); + let stream = context.new_stream().unwrap(); + let tensor = Tensor::from_buffer( + DeviceBuffer::from_host(&stream, &[1u32; 16]).unwrap(), + vec![4, 4], + ); + let slice = tensor.slice(&[1..3]).unwrap(); + let view = slice.as_buffer().unwrap(); + let base = tensor.as_buffer().unwrap(); + assert_eq!(view.cu_deviceptr(), base.cu_deviceptr() + 16); + assert_eq!(view.len(), 8); + assert_eq!(view.context(), base.context()); + assert_eq!( + view.storage().allocation_id(), + base.storage().allocation_id() + ); + assert!(tensor.slice(&[0..4, 1..3]).unwrap().as_buffer().is_err()); +} + +#[test] +fn typed_ownership_transfer_rejects_a_live_boolean_alias() { + let context = Context::new(0).unwrap(); + let stream = context.new_stream().unwrap(); + let tensor = Arc::new(Tensor::from_buffer( + DeviceBuffer::from_host(&stream, &[true; 8]).unwrap(), + vec![8], + )); + let alias = (&tensor).reshape(&[2, 4]).unwrap(); + let tensor = Arc::try_unwrap(tensor).ok().unwrap(); + assert!( + std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| tensor.into_buffer())).is_err() + ); + assert_eq!(alias.as_buffer().unwrap().len(), 8); +} diff --git a/cutile-rs/cutile/tests/slice_non_divisible.rs b/cutile-rs/cutile/tests/slice_non_divisible.rs index dd400320a7..c7397e0f44 100644 --- a/cutile-rs/cutile/tests/slice_non_divisible.rs +++ b/cutile-rs/cutile/tests/slice_non_divisible.rs @@ -472,7 +472,7 @@ fn gemm_non_divisible_m_and_n() { k.to_string(), ]; - let device = cuda_core::Device::new(0).unwrap(); + let device = cuda_core::Context::new(0).unwrap(); let stream = device.new_stream().unwrap(); let z = api::zeros::(&[m, n]) diff --git a/cutile-rs/cutile/tests/tensor_and_matrix_ops.rs b/cutile-rs/cutile/tests/tensor_and_matrix_ops.rs index 794b1fd5e8..2f36572b7b 100644 --- a/cutile-rs/cutile/tests/tensor_and_matrix_ops.rs +++ b/cutile-rs/cutile/tests/tensor_and_matrix_ops.rs @@ -4,7 +4,7 @@ */ use cutile::cuda_core::{f4e2m1fnx2, f8e4m3fn}; use cutile::prelude::{ - api, Arc, Device, DeviceOp, DeviceOpReshape, IntoPartition, Tensor, ToHostVec, + api, Arc, Context, DeviceOp, DeviceOpReshape, IntoPartition, Tensor, ToHostVec, }; use cutile_compiler::compiler::utils::CompileOptions; use cutile_ir::requirements::Feature; @@ -613,7 +613,7 @@ fn execute_raw_mmaf_scaled_nvfp4_e4_scale() { return; } - let device = Device::new(0).expect("device"); + let device = Context::new(0).expect("device"); let stream = device.new_stream().expect("stream"); let fp4_one = f4e2m1fnx2::from_nibbles(0x2, 0x2); let scale_one = f8e4m3fn(0x38); diff --git a/cutile-rs/scripts/run_cpu_tests.sh b/cutile-rs/scripts/run_cpu_tests.sh index 3e8549facb..58dd701109 100755 --- a/cutile-rs/scripts/run_cpu_tests.sh +++ b/cutile-rs/scripts/run_cpu_tests.sh @@ -125,9 +125,10 @@ run_step \ run_step \ "cuda-core compile-time contract tests" \ host_cargo test -p cuda-core \ - --test simt_device_copy_derive \ - --test simt_device_copy_impls \ - --test simt_launch_contract_types + --test device_copy_derive \ + --test device_copy_impls \ + --test device_buffer_casts \ + --test launch_contract_types # Builds the compile_fail soundness contracts (non-Send launch storage, # brand/rank rejection, buffer aliasing) that no other target covers. diff --git a/cutile-rs/scripts/run_gpu_tests.sh b/cutile-rs/scripts/run_gpu_tests.sh index b40b2254a4..330ed0caa5 100755 --- a/cutile-rs/scripts/run_gpu_tests.sh +++ b/cutile-rs/scripts/run_gpu_tests.sh @@ -83,21 +83,22 @@ run_step \ "cuda-core GPU integration test vmm_multicast" \ host_cargo test -p cuda-core --test vmm_multicast -# The SIMT integration tests carried over from cuda-oxide. simt_vmm_p2p +# The SIMT integration tests carried over from cuda-oxide. vmm_p2p # exercises the real two-GPU P2P path (it self-skips on single-device -# machines or when peer access is unavailable); simt_vmm_multicast +# machines or when peer access is unavailable); vmm_multicast # self-skips without NVLink switch multicast support. for test_target in \ borrow_raw \ - simt_context_limits \ - simt_context_sync_policy \ - simt_device_buffer \ - simt_device_buffer_leaks \ - simt_pinned_host_buffer \ - simt_stream_priority \ - simt_stream_query \ - simt_vmm_multicast \ - simt_vmm_p2p + context_limits \ + context_sync_policy \ + device_buffer \ + device_buffer_leaks \ + pinned_host_buffer \ + stream_priority \ + stream_query \ + nvlink_multicast \ + shared_allocation \ + vmm_p2p do run_step \ "cuda-core GPU integration test ${test_target}" \ @@ -132,3 +133,5 @@ done print_summary_and_exit \ "All GPU tests passed!" \ "Some GPU tests failed. See output above for details." + +run_step "shared Tile and SIMT host buffer interop" cargo test -p cutile --test shared_host_buffers -- --test-threads=1 From f0f61e262e19489bacd2b861863eea2d70000abd Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Wed, 21 Oct 2026 16:08:00 -0700 Subject: [PATCH 08/17] fix(cuda-core): complete context migration in Tile consumers Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- cutile-rs/cutile-book/tutorials/01-hello-world.md | 4 ++-- cutile-rs/cutile-book/tutorials/10-cuda-graphs.md | 2 +- cutile-rs/cutile-examples/examples/flash_attention.rs | 2 +- cutile-rs/cutile-examples/examples/mxfp8.rs | 2 +- cutile-rs/cutile-examples/examples/nvfp4.rs | 2 +- cutile-rs/cutile-examples/examples/persistent_gemm.rs | 2 +- cutile-rs/cutile-examples/examples/saxpy.rs | 2 +- cutile-rs/cutile-examples/examples/softmax.rs | 2 +- cutile-rs/cutile-examples/src/lib.rs | 8 ++++---- .../tests/ui/graph_scope_rejects_allocating_input.rs | 2 +- 10 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cutile-rs/cutile-book/tutorials/01-hello-world.md b/cutile-rs/cutile-book/tutorials/01-hello-world.md index e7b8f34480..791a4e17e4 100644 --- a/cutile-rs/cutile-book/tutorials/01-hello-world.md +++ b/cutile-rs/cutile-book/tutorials/01-hello-world.md @@ -41,7 +41,7 @@ mod hello_world_module { use hello_world_module::hello_world_kernel; fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let launcher = hello_world_kernel(); launcher.grid((2, 2, 1)).sync_on(&stream)?; @@ -90,7 +90,7 @@ The following host-side code will launch the device-side code: ```rust fn main() -> Result<(), Error> { - let device = Device::new(0)?; // Connect to GPU + let device = Context::new(0)?; // Connect to GPU let stream = device.new_stream()?; // Create a work queue let launcher = hello_world_kernel(); // Get the kernel launcher launcher.grid((2, 2, 1)).sync_on(&stream)?; // Launch 2×2×1 = 4 programs diff --git a/cutile-rs/cutile-book/tutorials/10-cuda-graphs.md b/cutile-rs/cutile-book/tutorials/10-cuda-graphs.md index c2e0d88159..136f42bc36 100644 --- a/cutile-rs/cutile-book/tutorials/10-cuda-graphs.md +++ b/cutile-rs/cutile-book/tutorials/10-cuda-graphs.md @@ -276,7 +276,7 @@ Each `forward` call: ```rust fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let cfg = Config { d: 2048, n_layers: 22, block: 128, bn: 16, bk: 16, eps: 1e-5 }; diff --git a/cutile-rs/cutile-examples/examples/flash_attention.rs b/cutile-rs/cutile-examples/examples/flash_attention.rs index 88c8443bdb..7d104833ef 100644 --- a/cutile-rs/cutile-examples/examples/flash_attention.rs +++ b/cutile-rs/cutile-examples/examples/flash_attention.rs @@ -207,7 +207,7 @@ fn fmha( .reshape(((), m, d)) .expect("Failed to reshape."); let out_candle = - candle_core::Tensor::from_slice(&out_vec, &[b * h, m, d], &candle_core::Context::Cpu) + candle_core::Tensor::from_slice(&out_vec, &[b * h, m, d], &candle_core::Device::Cpu) .unwrap(); println!("out shape = {:?}", out_candle.shape()); for i in 0..(b * h) { diff --git a/cutile-rs/cutile-examples/examples/mxfp8.rs b/cutile-rs/cutile-examples/examples/mxfp8.rs index 06df19c6d2..b1ceff59bb 100644 --- a/cutile-rs/cutile-examples/examples/mxfp8.rs +++ b/cutile-rs/cutile-examples/examples/mxfp8.rs @@ -75,7 +75,7 @@ fn main() -> Result<(), Error> { } fn run() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let gpu_name = get_gpu_name(0); println!("Target GPU: {gpu_name}"); diff --git a/cutile-rs/cutile-examples/examples/nvfp4.rs b/cutile-rs/cutile-examples/examples/nvfp4.rs index 2c79c5f65e..084b275fc7 100644 --- a/cutile-rs/cutile-examples/examples/nvfp4.rs +++ b/cutile-rs/cutile-examples/examples/nvfp4.rs @@ -84,7 +84,7 @@ fn main() -> Result<(), Error> { } fn run() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let gpu_name = get_gpu_name(0); println!("Target GPU: {gpu_name}"); diff --git a/cutile-rs/cutile-examples/examples/persistent_gemm.rs b/cutile-rs/cutile-examples/examples/persistent_gemm.rs index 50e27a4cea..3a94240003 100644 --- a/cutile-rs/cutile-examples/examples/persistent_gemm.rs +++ b/cutile-rs/cutile-examples/examples/persistent_gemm.rs @@ -71,7 +71,7 @@ fn main() { } fn run() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; const BM: usize = 16; diff --git a/cutile-rs/cutile-examples/examples/saxpy.rs b/cutile-rs/cutile-examples/examples/saxpy.rs index abac8a0e92..4ab7df784e 100644 --- a/cutile-rs/cutile-examples/examples/saxpy.rs +++ b/cutile-rs/cutile-examples/examples/saxpy.rs @@ -26,7 +26,7 @@ fn main() -> Result<(), Error> { } // Create a context. Device 0 is associated with the context. - let device = Device::new(0)?; + let device = Context::new(0)?; // Create a new stream on which we run CUDA operations. let stream = device.new_stream()?; let a = 2.0; diff --git a/cutile-rs/cutile-examples/examples/softmax.rs b/cutile-rs/cutile-examples/examples/softmax.rs index 8108adda8e..d6c387f64a 100644 --- a/cutile-rs/cutile-examples/examples/softmax.rs +++ b/cutile-rs/cutile-examples/examples/softmax.rs @@ -33,7 +33,7 @@ fn main() -> Result<(), Error> { } // Create a context. Device 0 is associated with the context. - let device = Device::new(0)?; + let device = Context::new(0)?; // Create a new stream on which we run CUDA operations. let stream = device.new_stream()?; let (m, n) = (4, 8); diff --git a/cutile-rs/cutile-examples/src/lib.rs b/cutile-rs/cutile-examples/src/lib.rs index a636f2e566..8650617066 100644 --- a/cutile-rs/cutile-examples/src/lib.rs +++ b/cutile-rs/cutile-examples/src/lib.rs @@ -19,7 +19,7 @@ use cuda_core::{get_device_clock_rate, Context}; /// Convert a host slice to a candle CPU tensor. #[cfg(feature = "reference-cpu")] pub fn to_candle_tensor(data: &[T], shape: &[usize]) -> candle_core::Tensor { - candle_core::Tensor::from_slice(data, shape, &candle_core::Context::Cpu).unwrap() + candle_core::Tensor::from_slice(data, shape, &candle_core::Device::Cpu).unwrap() } /// Prints a 2D candle tensor in a formatted table for debugging. @@ -77,11 +77,11 @@ pub fn fmha_ref_exec( sm_scale: T, ) -> candle_core::Tensor { let q_host = - candle_core::Tensor::from_slice(q_data, q_shape, &candle_core::Context::Cpu).unwrap(); + candle_core::Tensor::from_slice(q_data, q_shape, &candle_core::Device::Cpu).unwrap(); let k_host = - candle_core::Tensor::from_slice(k_data, k_shape, &candle_core::Context::Cpu).unwrap(); + candle_core::Tensor::from_slice(k_data, k_shape, &candle_core::Device::Cpu).unwrap(); let v_host = - candle_core::Tensor::from_slice(v_data, v_shape, &candle_core::Context::Cpu).unwrap(); + candle_core::Tensor::from_slice(v_data, v_shape, &candle_core::Device::Cpu).unwrap(); let k_trans = k_host.transpose(2, 3).expect("Failed to transpose k."); let qk = q_host .broadcast_matmul(&k_trans) diff --git a/cutile-rs/cutile/tests/ui/graph_scope_rejects_allocating_input.rs b/cutile-rs/cutile/tests/ui/graph_scope_rejects_allocating_input.rs index fd24146b7b..42cd20a44f 100644 --- a/cutile-rs/cutile/tests/ui/graph_scope_rejects_allocating_input.rs +++ b/cutile-rs/cutile/tests/ui/graph_scope_rejects_allocating_input.rs @@ -18,7 +18,7 @@ mod kernels { } fn main() -> Result<(), Error> { - let device = Device::new(0)?; + let device = Context::new(0)?; let stream = device.new_stream()?; let x = api::ones::(&[4]).sync_on(&stream)?; let _graph = CudaGraph::scope(&stream, |s| { From 800243257893f5369b44be6b91b34e03a7410b5c Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Wed, 21 Oct 2026 16:12:48 -0700 Subject: [PATCH 09/17] docs: order shared host imports consistently Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- .../gpu-programming/virtual-memory-and-peer-access.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cuda-oxide/cuda-oxide-book/gpu-programming/virtual-memory-and-peer-access.md b/cuda-oxide/cuda-oxide-book/gpu-programming/virtual-memory-and-peer-access.md index 77fd37a9ac..26ea9c6faf 100644 --- a/cuda-oxide/cuda-oxide-book/gpu-programming/virtual-memory-and-peer-access.md +++ b/cuda-oxide/cuda-oxide-book/gpu-programming/virtual-memory-and-peer-access.md @@ -292,8 +292,8 @@ The following pattern: * Reads the same physical memory through GPU 1's mapping. ```rust -use cuda_core::{peer, vmm}; use cuda_core::{CudaContext, DriverError, IntoResult}; +use cuda_core::{peer, vmm}; use std::mem::MaybeUninit; fn gpu_count() -> Result { From eec8776ffd41a7a10e7fd70d496a51fac0b13ad3 Mon Sep 17 00:00:00 2001 From: nihalpasham Date: Thu, 22 Oct 2026 15:24:48 +0530 Subject: [PATCH 10/17] fix(cuda-core): preserve shared read access on empty and peeled DeviceBuffers Signed-off-by: nihalpasham --- cuda-core/src/device_buffer.rs | 28 ++++++++++++++------------ cuda-core/tests/device_buffer_leaks.rs | 4 ++++ cuda-core/tests/shared_allocation.rs | 16 +++++++++++++++ 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/cuda-core/src/device_buffer.rs b/cuda-core/src/device_buffer.rs index d38349e1e5..e9249273ea 100644 --- a/cuda-core/src/device_buffer.rs +++ b/cuda-core/src/device_buffer.rs @@ -412,7 +412,9 @@ impl DeviceBuffer { { // SAFETY: DeviceRepr guarantees every initialized T representation // is valid as I; relabel preserves ownership and checks the layout. - unsafe { self.relabel() } + let mut buffer = unsafe { self.relabel() }; + buffer.shared_access_writes = false; + buffer } /// Hand this allocation to a `DeviceBuffer` of the same length. @@ -525,6 +527,14 @@ impl DeviceBuffer { } impl DeviceBuffer { + fn empty_copy(len: usize, ctx: Arc) -> Self { + // SAFETY: a null pointer with zero bytes is never dereferenced + // and Drop/drop_async ignore it. DeviceCopy excludes interior mutability. + let mut buf = unsafe { Self::from_raw_parts(0, len, ctx) }; + buf.shared_access_writes = false; + buf + } + /// Constructs a plain-value typed view of shared byte storage. /// /// # Safety @@ -565,9 +575,7 @@ impl DeviceBuffer { // cuMemAlloc rejects zero-byte requests with CUDA_ERROR_INVALID_VALUE, // so represent an empty buffer as a null pointer (Drop skips it). if num_bytes == 0 { - // SAFETY: a null pointer with zero bytes is never dereferenced - // and Drop ignores it. - return Ok(unsafe { Self::from_raw_parts(0, len, ctx) }); + return Ok(Self::empty_copy(len, ctx)); } ctx.bind_to_thread()?; @@ -607,9 +615,7 @@ impl DeviceBuffer { // cuMemAlloc rejects zero-byte requests with CUDA_ERROR_INVALID_VALUE, // so represent an empty buffer as a null pointer (Drop skips it). if num_bytes == 0 { - // SAFETY: a null pointer with zero bytes is never dereferenced - // and Drop ignores it. - return Ok(unsafe { Self::from_raw_parts(0, len, ctx) }); + return Ok(Self::empty_copy(len, ctx)); } ctx.bind_to_thread()?; @@ -691,9 +697,7 @@ impl DeviceBuffer { // cuMemAlloc rejects zero-byte requests with CUDA_ERROR_INVALID_VALUE, // so represent an empty buffer as a null pointer (Drop skips it). if num_bytes == 0 { - // SAFETY: a null pointer with zero bytes is never dereferenced - // and Drop ignores it. - return Ok(unsafe { Self::from_raw_parts(0, len, ctx) }); + return Ok(Self::empty_copy(len, ctx)); } ctx.bind_to_thread()?; @@ -915,9 +919,7 @@ impl DeviceBuffer { let ctx = stream.context().clone(); let num_bytes = allocation_size::(len)?; if num_bytes == 0 { - // SAFETY: a null pointer with zero bytes is never dereferenced - // and Drop/drop_async ignore it. - return Ok(unsafe { Self::from_raw_parts(0, len, ctx) }); + return Ok(Self::empty_copy(len, ctx)); } ctx.bind_to_thread()?; diff --git a/cuda-core/tests/device_buffer_leaks.rs b/cuda-core/tests/device_buffer_leaks.rs index f5e742070e..01d604eb74 100644 --- a/cuda-core/tests/device_buffer_leaks.rs +++ b/cuda-core/tests/device_buffer_leaks.rs @@ -90,11 +90,14 @@ fn vram_returns_to_baseline_after_buffer_cycles() { free } + let baseline = Arc::strong_count(&ctx); + // Warm up driver allocator caches so the measured window is stable. for _ in 0..4 { let b = DeviceBuffer::::zeroed(&stream, 1 << 20).expect("warmup alloc failed"); drop(b); } + wait_for_retirement(&ctx, baseline); ctx.synchronize().expect("sync failed"); let before = free_mem(); @@ -102,6 +105,7 @@ fn vram_returns_to_baseline_after_buffer_cycles() { let b = DeviceBuffer::::zeroed(&stream, 1 << 20).expect("cycle alloc failed"); drop(b); } + wait_for_retirement(&ctx, baseline); ctx.synchronize().expect("sync failed"); let after = free_mem(); diff --git a/cuda-core/tests/shared_allocation.rs b/cuda-core/tests/shared_allocation.rs index 1a54197412..9d3e35a2e1 100644 --- a/cuda-core/tests/shared_allocation.rs +++ b/cuda-core/tests/shared_allocation.rs @@ -133,3 +133,19 @@ fn fresh_thread_allocation_binds_its_context() { .join() .unwrap(); } + +#[test] +fn empty_and_peeled_buffers_preserve_shared_read_access() { + let context = Context::new(0).unwrap(); + let stream = context.new_stream().unwrap(); + let empty = DeviceBuffer::::from_host(&stream, &[]).unwrap(); + assert!(!empty.shared_access_writes()); + let zeroed_empty = DeviceBuffer::::zeroed(&stream, 0).unwrap(); + assert!(!zeroed_empty.shared_access_writes()); + + let words = DeviceBuffer::from_host(&stream, &[1u32, 2, 3]).unwrap(); + let wrapped = words.wrap_elem::>(); + assert!(wrapped.shared_access_writes()); + let peeled = wrapped.peel_elem::(); + assert!(!peeled.shared_access_writes()); +} From 282eeb18550424fd69c5282e2317de44f601ec65 Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Thu, 22 Oct 2026 16:09:01 -0700 Subject: [PATCH 11/17] fix(cuda-core): count allocation views independently of leases Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- cuda-core/src/allocation.rs | 74 ++++++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 14 deletions(-) diff --git a/cuda-core/src/allocation.rs b/cuda-core/src/allocation.rs index 15578c8ad8..11358744fb 100644 --- a/cuda-core/src/allocation.rs +++ b/cuda-core/src/allocation.rs @@ -7,10 +7,7 @@ use crate::{Context, DriverError, Stream}; use cuda_bindings::CUdeviceptr; -use std::sync::{ - atomic::{AtomicUsize, Ordering}, - Arc, Mutex, -}; +use std::sync::{Arc, Mutex}; /// A foreign allocation whose owner keeps both its memory and CUDA context alive. /// @@ -92,7 +89,6 @@ struct Allocation { context: Arc, owner: Owner, accesses: Mutex, - leases: AtomicUsize, } impl Drop for Allocation { @@ -135,6 +131,9 @@ impl Drop for Allocation { #[derive(Clone)] pub struct RawDeviceBuffer { allocation: Arc, + // Only user-visible views share this token. Completion leases retain the + // allocation directly, so creating/dropping them cannot affect uniqueness. + views: Arc<()>, offset: usize, len: usize, } @@ -162,8 +161,8 @@ impl RawDeviceBuffer { context, owner, accesses: Mutex::default(), - leases: AtomicUsize::new(0), }), + views: Arc::new(()), offset: 0, len: bytes, } @@ -260,6 +259,7 @@ impl RawDeviceBuffer { } Ok(Self { allocation: self.allocation.clone(), + views: self.views.clone(), offset: self.offset + offset, len: bytes, }) @@ -268,12 +268,7 @@ impl RawDeviceBuffer { /// Whether only this user-visible view owns the allocation. Completion leases /// do not count as user aliases; they still enforce in-flight exclusion. pub fn is_unique(&self) -> bool { - let _accesses = self - .allocation - .accesses - .lock() - .unwrap_or_else(|e| e.into_inner()); - Arc::strong_count(&self.allocation) == 1 + self.allocation.leases.load(Ordering::Relaxed) + Arc::strong_count(&self.views) == 1 } /// Acquires an allocation-wide access, rejecting cross-stream conflicts. @@ -308,7 +303,6 @@ impl RawDeviceBuffer { .lock() .unwrap_or_else(|e| e.into_inner()); let id = accesses.register(stream, write, recording)?; - self.allocation.leases.fetch_add(1, Ordering::Relaxed); Ok(AllocationLease { allocation: self.allocation.clone(), id, @@ -352,7 +346,6 @@ impl Drop for AllocationLease { if let Some(pos) = accesses.active.iter().position(|a| a.id == self.id) { accesses.active.swap_remove(pos); } - self.allocation.leases.fetch_sub(1, Ordering::Relaxed); } } @@ -388,3 +381,56 @@ impl std::fmt::Debug for AllocationLease { .finish_non_exhaustive() } } + +#[cfg(test)] +mod tests { + use super::*; + use std::sync::atomic::{AtomicBool, Ordering}; + + fn metadata() -> RawDeviceBuffer { + // SAFETY: bookkeeping only. These borrowed handles are never passed to + // CUDA, dereferenced, or freed by their destructors. + unsafe { + RawDeviceBuffer::borrowed_from_raw_parts( + 0x1000, + 128, + Context::borrow_raw(0x2000 as *mut _, 0, 0), + ) + } + } + + #[test] + fn uniqueness_counts_byte_views_but_not_completion_leases() { + let raw = metadata(); + let view = raw.slice_bytes(16, 32).unwrap(); + let clone = raw.clone(); + let lease = raw.acquire_on_stream(1, true, false).unwrap(); + assert!(!raw.is_unique()); + drop(view); + assert!(!raw.is_unique()); + drop(clone); + assert!(raw.is_unique()); + assert!(raw.acquire_on_stream(2, false, false).is_err()); + drop(lease); + assert!(raw.acquire_on_stream(2, false, false).is_ok()); + } + + #[test] + fn concurrent_lease_retirement_cannot_change_user_uniqueness() { + let raw = metadata(); + let stop = AtomicBool::new(false); + let mut false_negatives = 0; + std::thread::scope(|scope| { + scope.spawn(|| { + while !stop.load(Ordering::Relaxed) { + drop(raw.acquire_on_stream(1, false, false).unwrap()); + } + }); + for _ in 0..100_000 { + false_negatives += usize::from(!raw.is_unique()); + } + stop.store(true, Ordering::Relaxed); + }); + assert_eq!(false_negatives, 0); + } +} From bb0e891f2e3877e1009cc13799bdfd27a657d70d Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Thu, 22 Oct 2026 16:09:01 -0700 Subject: [PATCH 12/17] fix(cutile): separate tensor aliases from completion leases Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- cutile-rs/CHANGELOG.md | 3 ++ cutile-rs/cutile/src/api.rs | 8 +-- cutile-rs/cutile/src/tensor.rs | 90 +++++++++++++++++++++++++++------- 3 files changed, 80 insertions(+), 21 deletions(-) diff --git a/cutile-rs/CHANGELOG.md b/cutile-rs/CHANGELOG.md index 951c83a482..11732161e4 100644 --- a/cutile-rs/CHANGELOG.md +++ b/cutile-rs/CHANGELOG.md @@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ### Fixed +- Tensor uniqueness tracks user-visible aliases separately from completion + leases. Concurrent lease creation or release can no longer permit an aliased + mutable partition or spuriously reject unique storage. - Host-side `KernelInputStored` and `KernelOutputStored` require `unsafe impl` with explicit type, ABI, extent, retention, and access obligations. Safe custom bindings can no longer mislabel boolean storage as byte kernel arguments. diff --git a/cutile-rs/cutile/src/api.rs b/cutile-rs/cutile/src/api.rs index 6e70bc4ad4..8f01a7845c 100644 --- a/cutile-rs/cutile/src/api.rs +++ b/cutile-rs/cutile/src/api.rs @@ -139,7 +139,7 @@ use crate::kernels::conversion::convert_apply; use crate::kernels::creation::{arange_apply, eye_apply, full_apply, linspace as linspace_kernel}; -use crate::tensor::{IntoPartition, Reshape, Storage, Tensor, Unpartition}; +use crate::tensor::{IntoPartition, Reshape, StorageHandle, Tensor, Unpartition}; use cuda_async::device_context::with_default_device_policy; use cuda_async::device_future::DeviceFuture; use cuda_async::device_operation::{ @@ -159,7 +159,7 @@ use std::sync::Arc; /// This internal type implements the async copy operation that allocates new /// GPU memory and copies tensor data device-to-device. pub struct CopyDeviceToDevice { - _storage: Arc, // keeps source GPU memory alive + _storage: StorageHandle, // keeps source GPU memory alive src_ptr: CUdeviceptr, shape: Vec, strides: Vec, @@ -280,8 +280,8 @@ pub fn memcpy<'a, T: DType>(dst: &'a mut Tensor, src: &'a Tensor) -> Memcp /// /// Records as a single graph node ([`GraphNode`]) — it allocates nothing. pub struct Memcpy<'a> { - src_storage: Arc, - dst_storage: Arc, + src_storage: StorageHandle, + dst_storage: StorageHandle, src_ptr: cuda_core::sys::CUdeviceptr, dst_ptr: cuda_core::sys::CUdeviceptr, len: usize, diff --git a/cutile-rs/cutile/src/tensor.rs b/cutile-rs/cutile/src/tensor.rs index 845af6c6c1..5060c1f1cf 100644 --- a/cutile-rs/cutile/src/tensor.rs +++ b/cutile-rs/cutile/src/tensor.rs @@ -538,6 +538,23 @@ pub(crate) struct Storage { accesses: Mutex>, } +/// A user-visible storage owner, including aliases and lazy copy operations. +/// Completion leases retain only `Storage`; their Arc bookkeeping must never +/// make a real alias look unique or a unique tensor look shared. +#[derive(Clone, Debug)] +pub(crate) struct StorageHandle { + storage: Arc, + owners: Arc<()>, +} + +impl std::ops::Deref for StorageHandle { + type Target = Arc; + + fn deref(&self) -> &Self::Target { + &self.storage + } +} + #[derive(Debug)] enum Allocation { /// A real, owned GPU allocation. @@ -546,14 +563,23 @@ enum Allocation { Meta { len_bytes: usize, device_id: usize }, } -impl Storage { +impl StorageHandle { fn new(allocation: Allocation) -> Self { Self { - allocation, - accesses: Mutex::new(Vec::new()), + storage: Arc::new(Storage { + allocation, + accesses: Mutex::new(Vec::new()), + }), + owners: Arc::new(()), } } + fn is_unique(&self) -> bool { + Arc::strong_count(&self.owners) == 1 + } +} + +impl Storage { pub(crate) fn retain( self: &Arc, ctx: &ExecutionContext, @@ -628,13 +654,6 @@ impl Storage { Ok(id) } - fn is_unique(self: &Arc) -> bool { - let accesses = self.accesses.lock().unwrap_or_else(|e| e.into_inner()); - // Each lease has exactly one internal Arc. Only user-visible aliases - // prevent partitioning; same-stream leases are ordered on submission. - Arc::strong_count(self) == 1 + accesses.len() - } - /// 16-aligned sentinel address fed to [`compute_spec`] for meta tensors. /// /// `DivHint::from_ptr` clamps pointer alignment to 16, and every @@ -699,9 +718,8 @@ struct StorageAccess { impl AccessTracked for Storage { fn release_access(&self, id: u64) { - // Remove the entry before the lease drops its Arc, so uniqueness - // checks can be conservative during release but can never overlook - // a real alias. + // Releasing access and dropping its retaining Arc may happen separately: + // neither changes the user-owner token used by uniqueness checks. let mut accesses = self.accesses.lock().unwrap_or_else(|e| e.into_inner()); if let Some(pos) = accesses.iter().position(|access| access.id == id) { accesses.swap_remove(pos); @@ -782,7 +800,7 @@ impl Drop for StorageLease { /// ``` #[derive(Debug)] pub struct Tensor { - pub(crate) storage: Arc, + pub(crate) storage: StorageHandle, pub(crate) shape: Vec, pub(crate) strides: Vec, pub(crate) spec: SpecializationBits, @@ -967,7 +985,7 @@ impl Tensor { strides: Vec, ) -> Self { Self::assert_valid_metadata(&shape, &strides, device_buffer.len_bytes()); - let storage = Arc::new(Storage::new(Allocation::Device(device_buffer))); + let storage = StorageHandle::new(Allocation::Device(device_buffer)); let spec = compute_spec( storage.cu_deviceptr(), &shape, @@ -1142,10 +1160,10 @@ impl Tensor { size_of::() as i32, ); Self { - storage: Arc::new(Storage::new(Allocation::Meta { + storage: StorageHandle::new(Allocation::Meta { len_bytes, device_id, - })), + }), shape, strides, spec, @@ -2498,6 +2516,44 @@ mod tests { assert!(tensor.has_unique_storage()); } + #[test] + fn registering_access_cannot_hide_a_tensor_alias() { + let tensor = Arc::new(meta_f32(&[8])); + let alias = (&tensor).reshape(&[2, 4]).unwrap(); + // Pause at the real acquisition boundary: the access is registered, + // but the completion lease has not cloned its retaining Arc yet. + let id = tensor.storage.register_access(1, false, false).unwrap(); + assert!(!alias.has_unique_storage()); + assert!(alias.try_partition([2, 4]).is_err()); + tensor.storage.release_access(id); + assert!(tensor.has_unique_storage()); + } + + #[test] + fn releasing_access_does_not_wait_for_the_internal_arc_to_drop() { + let mut tensor = meta_f32(&[8]); + let lease = tensor.storage.acquire(1, false, false).unwrap(); + // Pause at the real destruction boundary: the access was released, + // but the lease still owns its Arc until field destruction runs. + lease.storage.release_access(lease.id); + assert!(tensor.has_unique_storage()); + drop((&mut tensor).partition([4])); + drop(lease); + assert!(tensor.has_unique_storage()); + } + + #[test] + fn lazy_copy_keeps_a_user_visible_storage_alias() { + let owner: Arc = Arc::new(FakeAlloc { len_bytes: 32 }); + // SAFETY: metadata-only; the copy is never submitted and the pointer + // is never dereferenced. + let tensor = unsafe { Tensor::::from_foreign(owner, vec![8], vec![1]) }; + let copy = tensor.dup(); + assert!(!tensor.has_unique_storage()); + drop(copy); + assert!(tensor.has_unique_storage()); + } + #[test] fn recording_keeps_storage_without_claiming_executed_access() { let tensor = meta_f32(&[8]); From c1e2df5cafeb4dcfb961d3e6187f8f4acf5bd7c3 Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Fri, 30 Oct 2026 11:42:03 -0700 Subject: [PATCH 13/17] fix(cuda-core): require initialized source bytes for safe buffer casts Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- cuda-core/Cargo.toml | 2 +- cuda-core/src/simt/device_buffer.rs | 45 ++++--- .../fail_cast_chunks_bool.stderr | 2 +- .../fail_cast_elem_bool.stderr | 2 +- .../fail_cast_uninitialized_sources.rs | 41 +++++++ .../fail_cast_uninitialized_sources.stderr | 113 ++++++++++++++++++ .../device_buffer_casts/pass_bounded_casts.rs | 21 +++- cuda-core/tests/simt_device_buffer_casts.rs | 10 +- cutile-rs/CHANGELOG.md | 3 + 9 files changed, 214 insertions(+), 25 deletions(-) create mode 100644 cuda-core/tests/device_buffer_casts/fail_cast_uninitialized_sources.rs create mode 100644 cuda-core/tests/device_buffer_casts/fail_cast_uninitialized_sources.stderr diff --git a/cuda-core/Cargo.toml b/cuda-core/Cargo.toml index c19d8bc9ee..9c6fd7e7e0 100644 --- a/cuda-core/Cargo.toml +++ b/cuda-core/Cargo.toml @@ -17,7 +17,7 @@ cuda-bindings = { version = "=0.5.0", path = "../cuda-bindings" } cuda-core-derive = { version = "=0.5.0", path = "../cuda-core-derive" } cuda-repr = { version = "=0.5.0", path = "../cuda-repr" } anyhow = "1" -# `AnyBitPattern` bounds safe reinterpreting casts on `DeviceBuffer`. +# `NoUninit`/`AnyBitPattern` bound safe source/destination buffer casts. # Re-exported at the crate root for downstream element types. # `min_const_generics` gives `Pod` for arrays of every length. bytemuck = { version = "1", features = ["min_const_generics"] } diff --git a/cuda-core/src/simt/device_buffer.rs b/cuda-core/src/simt/device_buffer.rs index 69caab9868..0210f1143c 100644 --- a/cuda-core/src/simt/device_buffer.rs +++ b/cuda-core/src/simt/device_buffer.rs @@ -33,7 +33,7 @@ use std::mem::MaybeUninit; use std::num::Wrapping; use std::sync::Arc; -use bytemuck::AnyBitPattern; +use bytemuck::{AnyBitPattern, NoUninit}; use cuda_bindings::CUdeviceptr; use cuda_repr::DeviceRepr; @@ -65,8 +65,10 @@ use crate::simt::stream::CudaStream; /// are `unsafe`, so their caller vouches for the contents. The one place /// arbitrary bytes could become typed values is the safe reinterpreting casts, /// [`DeviceBuffer::cast_elem`] and [`DeviceBuffer::cast_chunks`]. They require -/// the target to implement [`bytemuck::AnyBitPattern`], which `bool` does not, -/// so a `DeviceBuffer` can only come from memory written as `bool`. +/// the source to implement [`bytemuck::NoUninit`] and the target to implement +/// [`bytemuck::AnyBitPattern`]. This excludes uninitialized source bytes and +/// padding, and rejects `bool` as a target, so a `DeviceBuffer` can only +/// come from memory written as `bool`. pub unsafe trait DeviceCopy: Copy {} macro_rules! impl_device_copy { @@ -302,17 +304,21 @@ impl DeviceBuffer { /// and bytes are unchanged; only the element type changes. Element counts /// are preserved because `size_of::() == size_of::()`. /// - /// `A: AnyBitPattern` is what makes this safe: every bit pattern is a valid - /// `A`, so no byte written as a `T` can become an invalid `A`. Types with - /// invalid bit patterns, `bool` for one, are rejected at compile time, so a + /// `T: NoUninit` ensures that every source byte is initialized, including + /// bytes that would otherwise be padding. `A: AnyBitPattern` accepts every + /// initialized bit pattern, so those bytes are valid `A` values. Destination + /// types with invalid bit patterns, such as `bool`, are rejected, so a /// `DeviceBuffer` can only come from memory written as `bool`. /// /// Atomic types and other `#[repr(transparent)]` wrappers that are not /// `Copy` cannot be `AnyBitPattern`; use [`Self::wrap_elem`] and /// [`Self::peel_elem`] for those. - pub fn cast_elem(self) -> DeviceBuffer { - // SAFETY: every bit pattern is a valid `A`, so the bytes of any `T` - // are valid `A` values; `relabel` checks the layout. + pub fn cast_elem(self) -> DeviceBuffer + where + T: NoUninit, + { + // SAFETY: NoUninit guarantees initialized source bytes, and every + // initialized bit pattern is valid as A; relabel checks the layout. unsafe { self.relabel() } } @@ -426,11 +432,14 @@ impl DeviceBuffer { /// fallback path available, since a caller that cannot widen usually has a /// scalar version to fall back to. /// - /// As with [`Self::cast_elem`], `A: AnyBitPattern` is what makes the - /// reinterpretation safe: every bit pattern is a valid `A`. A host-defined - /// vector element gets there with `unsafe impl bytemuck::Pod` next to its - /// `DeviceCopy` impl. - pub fn cast_chunks(self) -> Result, Self> { + /// As with [`Self::cast_elem`], `T: NoUninit` guarantees initialized source + /// bytes and `A: AnyBitPattern` accepts every initialized bit pattern. A + /// host-defined vector element gets there with `unsafe impl bytemuck::Pod` + /// next to its `DeviceCopy` impl. + pub fn cast_chunks(self) -> Result, Self> + where + T: NoUninit, + { let bytes = self.len.saturating_mul(std::mem::size_of::()); let Some(new_len) = chunk_cast_len( bytes, @@ -445,16 +454,18 @@ impl DeviceBuffer { // above to be exactly `new_len` elements of `A` and to be aligned for // `A`. The allocation and its ownership are unchanged; only the element // type and the count describing the same bytes change. `Drop` on the - // original is suppressed by `into_all_raw_parts`. + // original is suppressed by `into_all_raw_parts`. NoUninit guarantees + // all source bytes are initialized; AnyBitPattern makes them valid A. Ok(unsafe { DeviceBuffer::::from_raw_parts_with_dealloc_stream(ptr, new_len, ctx, dealloc_stream) }) } - /// Whether [`Self::cast_chunks`] to `A` would succeed. + /// Whether the layout permits [`Self::cast_chunks`] to `A`. /// /// For choosing between a wide and a scalar path without consuming the - /// buffer to find out. + /// buffer to find out. This only checks layout; the actual cast also + /// requires `T: NoUninit`. #[must_use] pub fn can_cast_chunks(&self) -> bool { let bytes = self.len.saturating_mul(std::mem::size_of::()); diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr b/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr index 6701a8e469..8309feff7c 100644 --- a/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr +++ b/cuda-core/tests/device_buffer_casts/fail_cast_chunks_bool.stderr @@ -18,5 +18,5 @@ error[E0277]: the trait bound `bool: AnyBitPattern` is not satisfied note: required by a bound in `DeviceBuffer::::cast_chunks` --> src/simt/device_buffer.rs | - | pub fn cast_chunks(self) -> Result, Self> { + | pub fn cast_chunks(self) -> Result, Self> | ^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::cast_chunks` diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr b/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr index 64b7a30ea1..18f2247baa 100644 --- a/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr +++ b/cuda-core/tests/device_buffer_casts/fail_cast_elem_bool.stderr @@ -18,5 +18,5 @@ error[E0277]: the trait bound `bool: AnyBitPattern` is not satisfied note: required by a bound in `DeviceBuffer::::cast_elem` --> src/simt/device_buffer.rs | - | pub fn cast_elem(self) -> DeviceBuffer { + | pub fn cast_elem(self) -> DeviceBuffer | ^^^^^^^^^^^^^ required by this bound in `DeviceBuffer::::cast_elem` diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_uninitialized_sources.rs b/cuda-core/tests/device_buffer_casts/fail_cast_uninitialized_sources.rs new file mode 100644 index 0000000000..e53ef140b7 --- /dev/null +++ b/cuda-core/tests/device_buffer_casts/fail_cast_uninitialized_sources.rs @@ -0,0 +1,41 @@ +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +use std::mem::MaybeUninit; + +use cuda_core::{DeviceBuffer, DeviceCopy}; + +#[repr(C)] +#[derive(Clone, Copy)] +struct Padded { + tag: u8, + value: u32, +} + +// SAFETY: the fields are byte-copyable, zero is valid, and the type owns no +// resources. DeviceCopy permits padding; it does not imply NoUninit. +unsafe impl DeviceCopy for Padded {} + +fn uninitialized_element(buffer: DeviceBuffer>) -> DeviceBuffer { + buffer.cast_elem() +} + +fn uninitialized_chunks( + buffer: DeviceBuffer>, +) -> Result, DeviceBuffer>> { + buffer.cast_chunks() +} + +fn padded_element(buffer: DeviceBuffer) -> DeviceBuffer<[u32; 2]> { + buffer.cast_elem() +} + +fn padded_chunks(buffer: DeviceBuffer) -> Result, DeviceBuffer> { + buffer.cast_chunks() +} + +fn main() { + fn is_device_copy() {} + is_device_copy::>(); + is_device_copy::(); +} diff --git a/cuda-core/tests/device_buffer_casts/fail_cast_uninitialized_sources.stderr b/cuda-core/tests/device_buffer_casts/fail_cast_uninitialized_sources.stderr new file mode 100644 index 0000000000..bbd25de14a --- /dev/null +++ b/cuda-core/tests/device_buffer_casts/fail_cast_uninitialized_sources.stderr @@ -0,0 +1,113 @@ +error[E0277]: the trait bound `MaybeUninit: NoUninit` is not satisfied + --> tests/device_buffer_casts/fail_cast_uninitialized_sources.rs:20:12 + | +20 | buffer.cast_elem() + | ^^^^^^^^^ the trait `Pod` is not implemented for `MaybeUninit` + | + = help: the following other types implement trait `Pod`: + () + ManuallyDrop + Option + PhantomData + PhantomPinned + Wrapping + [T; N] + __m128 + and $N others + = note: required for `MaybeUninit` to implement `NoUninit` +note: required by a bound in `DeviceBuffer::::cast_elem` + --> src/simt/device_buffer.rs + | + | pub fn cast_elem(self) -> DeviceBuffer + | --------- required by a bound in this associated function + | where + | T: NoUninit, + | ^^^^^^^^ required by this bound in `DeviceBuffer::::cast_elem` + +error[E0277]: the trait bound `MaybeUninit: NoUninit` is not satisfied + --> tests/device_buffer_casts/fail_cast_uninitialized_sources.rs:26:12 + | +26 | buffer.cast_chunks() + | ^^^^^^^^^^^ the trait `Pod` is not implemented for `MaybeUninit` + | + = help: the following other types implement trait `Pod`: + () + ManuallyDrop + Option + PhantomData + PhantomPinned + Wrapping + [T; N] + __m128 + and $N others + = note: required for `MaybeUninit` to implement `NoUninit` +note: required by a bound in `DeviceBuffer::::cast_chunks` + --> src/simt/device_buffer.rs + | + | pub fn cast_chunks(self) -> Result, Self> + | ----------- required by a bound in this associated function + | where + | T: NoUninit, + | ^^^^^^^^ required by this bound in `DeviceBuffer::::cast_chunks` + +error[E0277]: the trait bound `Padded: NoUninit` is not satisfied + --> tests/device_buffer_casts/fail_cast_uninitialized_sources.rs:30:12 + | +30 | buffer.cast_elem() + | ^^^^^^^^^ unsatisfied trait bound + | +help: the trait `Pod` is not implemented for `Padded` + --> tests/device_buffer_casts/fail_cast_uninitialized_sources.rs:10:1 + | +10 | struct Padded { + | ^^^^^^^^^^^^^ + = help: the following other types implement trait `Pod`: + () + ManuallyDrop + Option + PhantomData + PhantomPinned + Wrapping + [T; N] + __m128 + and $N others + = note: required for `Padded` to implement `NoUninit` +note: required by a bound in `DeviceBuffer::::cast_elem` + --> src/simt/device_buffer.rs + | + | pub fn cast_elem(self) -> DeviceBuffer + | --------- required by a bound in this associated function + | where + | T: NoUninit, + | ^^^^^^^^ required by this bound in `DeviceBuffer::::cast_elem` + +error[E0277]: the trait bound `Padded: NoUninit` is not satisfied + --> tests/device_buffer_casts/fail_cast_uninitialized_sources.rs:34:12 + | +34 | buffer.cast_chunks() + | ^^^^^^^^^^^ unsatisfied trait bound + | +help: the trait `Pod` is not implemented for `Padded` + --> tests/device_buffer_casts/fail_cast_uninitialized_sources.rs:10:1 + | +10 | struct Padded { + | ^^^^^^^^^^^^^ + = help: the following other types implement trait `Pod`: + () + ManuallyDrop + Option + PhantomData + PhantomPinned + Wrapping + [T; N] + __m128 + and $N others + = note: required for `Padded` to implement `NoUninit` +note: required by a bound in `DeviceBuffer::::cast_chunks` + --> src/simt/device_buffer.rs + | + | pub fn cast_chunks(self) -> Result, Self> + | ----------- required by a bound in this associated function + | where + | T: NoUninit, + | ^^^^^^^^ required by this bound in `DeviceBuffer::::cast_chunks` diff --git a/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs b/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs index b00b87502a..a885596edf 100644 --- a/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs +++ b/cuda-core/tests/device_buffer_casts/pass_bounded_casts.rs @@ -28,6 +28,16 @@ fn group(floats: DeviceBuffer) -> Result, DeviceBuff floats.cast_chunks() } +// NoUninit does not require every bit pattern to be valid: bool is still a +// supported source, even though the opposite byte-to-bool casts are forbidden. +fn bool_bytes(flags: DeviceBuffer) -> DeviceBuffer { + flags.cast_elem() +} + +fn bool_chunks(flags: DeviceBuffer) -> Result, DeviceBuffer> { + flags.cast_chunks() +} + fn wrap(words: DeviceBuffer) -> DeviceBuffer { words.wrap_elem() } @@ -42,5 +52,14 @@ fn wrap_std(words: DeviceBuffer) -> DeviceBuffer> { fn main() { // Type-checking is the test; the functions are never called. - let _ = (reinterpret, reinterpret_wrapping, group, wrap, peel, wrap_std); + let _ = ( + reinterpret, + reinterpret_wrapping, + group, + bool_bytes, + bool_chunks, + wrap, + peel, + wrap_std, + ); } diff --git a/cuda-core/tests/simt_device_buffer_casts.rs b/cuda-core/tests/simt_device_buffer_casts.rs index fed5848915..90a801becf 100644 --- a/cuda-core/tests/simt_device_buffer_casts.rs +++ b/cuda-core/tests/simt_device_buffer_casts.rs @@ -3,10 +3,11 @@ //! The element casts on `DeviceBuffer` must not forge invalid values (#1506). //! -//! `cast_elem` and `cast_chunks` reinterpret bytes, so their target must be -//! `bytemuck::AnyBitPattern`; `wrap_elem` and `peel_elem` relabel through a -//! `cuda_core::DeviceRepr`. `bool` is neither, so no safe cast can -//! turn byte storage into a `DeviceBuffer`. These cases only need to +//! `cast_elem` and `cast_chunks` reinterpret bytes, so their source must be +//! `bytemuck::NoUninit` and their target `bytemuck::AnyBitPattern`; +//! `wrap_elem` and `peel_elem` relabel through a `cuda_core::DeviceRepr`. +//! No safe cast can turn byte storage into a `DeviceBuffer`, or turn +//! uninitialized source bytes into initialized values. These cases only need to //! compile or fail to compile; none touches a GPU. Regenerate the //! expectations with `TRYBUILD=overwrite cargo test -p cuda-core --test //! simt_device_buffer_casts` after an intentional diagnostic change. @@ -17,5 +18,6 @@ fn device_buffer_cast_bounds() { t.pass("tests/device_buffer_casts/pass_bounded_casts.rs"); t.compile_fail("tests/device_buffer_casts/fail_cast_elem_bool.rs"); t.compile_fail("tests/device_buffer_casts/fail_cast_chunks_bool.rs"); + t.compile_fail("tests/device_buffer_casts/fail_cast_uninitialized_sources.rs"); t.compile_fail("tests/device_buffer_casts/fail_wrap_elem_bool.rs"); } diff --git a/cutile-rs/CHANGELOG.md b/cutile-rs/CHANGELOG.md index 00af2d9132..d135d889d6 100644 --- a/cutile-rs/CHANGELOG.md +++ b/cutile-rs/CHANGELOG.md @@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ### Fixed +- Safe `DeviceBuffer` element and chunk casts require `NoUninit` on the source, + preventing `MaybeUninit` elements or struct padding from becoming initialized + destination values. Boolean-to-byte casts remain supported. - Tensor uniqueness tracks user-visible aliases separately from completion leases. Concurrent lease creation or release can no longer permit an aliased mutable partition or spuriously reject unique storage. From e6bb3ea021133e92ea18a4134701634669b2ba3e Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Fri, 30 Oct 2026 11:42:04 -0700 Subject: [PATCH 14/17] fix(cutile): separate completion retention from tensor buffer views Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- cutile-rs/CHANGELOG.md | 3 ++ cutile-rs/cutile/src/tensor.rs | 88 +++++++++++++++++++++++++++++++--- 2 files changed, 84 insertions(+), 7 deletions(-) diff --git a/cutile-rs/CHANGELOG.md b/cutile-rs/CHANGELOG.md index 23f4a15330..cdd63a7234 100644 --- a/cutile-rs/CHANGELOG.md +++ b/cutile-rs/CHANGELOG.md @@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ### Fixed +- Retiring tensor completion leases retain allocation access independently of + user-visible buffer views. Converting a uniquely owned tensor into a buffer + no longer reports a false alias while completion retirement is pending. - Tensor uniqueness tracks user-visible aliases separately from completion leases. Concurrent lease creation or release can no longer permit an aliased mutable partition or spuriously reject unique storage. diff --git a/cutile-rs/cutile/src/tensor.rs b/cutile-rs/cutile/src/tensor.rs index ec629736ae..70efb9d9c1 100644 --- a/cutile-rs/cutile/src/tensor.rs +++ b/cutile-rs/cutile/src/tensor.rs @@ -535,12 +535,13 @@ pub use cutile_compiler::specialization::{compute_spec, SpecializationBits}; #[derive(Debug)] pub(crate) struct Storage { allocation: Allocation, - accesses: Mutex>, + accesses: Arc, } /// A user-visible storage owner, including aliases and lazy copy operations. -/// Completion leases retain only `Storage`; their Arc bookkeeping must never -/// make a real alias look unique or a unique tensor look shared. +/// Completion leases retain only access bookkeeping and allocation leases; +/// their Arc bookkeeping must never make a real alias look unique or a unique +/// tensor look shared. #[derive(Clone, Debug)] pub(crate) struct StorageHandle { storage: Arc, @@ -568,7 +569,7 @@ impl StorageHandle { Self { storage: Arc::new(Storage { allocation, - accesses: Mutex::new(Vec::new()), + accesses: Arc::new(StorageAccessTracker::default()), }), owners: Arc::new(()), } @@ -616,10 +617,17 @@ impl Storage { Ok(()) } else { // Hot path: a refcount and an inline push, no allocation. - ctx.retain_lease(AccessLease::new(self.clone(), id)) + ctx.retain_lease(self.completion_lease(id)) } } + fn completion_lease(self: &Arc, id: u64) -> AccessLease { + // AllocationLease entries keep memory alive without retaining the + // RawDeviceBuffer user-view token stored in Storage. A tensor can thus + // transfer its sole view into a buffer while a completion is retiring. + AccessLease::new(self.accesses.clone(), id) + } + /// Test spelling of [`register_access`](Self::register_access) that hands /// back a lease, so an access is released when the lease drops. #[cfg(test)] @@ -645,7 +653,11 @@ impl Storage { write: bool, recording: bool, ) -> Result { - let mut accesses = self.accesses.lock().unwrap_or_else(|e| e.into_inner()); + let mut accesses = self + .accesses + .active + .lock() + .unwrap_or_else(|e| e.into_inner()); if !recording && accesses.iter().any(|access| { !access.recording && access.stream != stream && (write || access.write) @@ -741,11 +753,24 @@ struct StorageAccess { recording: bool, } +/// Completion ownership is separate from user-visible tensor/buffer views. +/// Each active entry independently retains the allocation and its exclusion. +#[derive(Debug, Default)] +struct StorageAccessTracker { + active: Mutex>, +} + impl AccessTracked for Storage { + fn release_access(&self, id: u64) { + self.accesses.release_access(id); + } +} + +impl AccessTracked for StorageAccessTracker { fn release_access(&self, id: u64) { // Releasing access and dropping its retaining Arc may happen separately: // neither changes the user-owner token used by uniqueness checks. - let mut accesses = self.accesses.lock().unwrap_or_else(|e| e.into_inner()); + let mut accesses = self.active.lock().unwrap_or_else(|e| e.into_inner()); if let Some(pos) = accesses.iter().position(|access| access.id == id) { accesses.swap_remove(pos); } @@ -2679,6 +2704,55 @@ mod tests { assert!(tensor.has_unique_storage()); } + #[test] + fn into_buffer_ignores_completion_owners_but_preserves_access_exclusion() { + let owner: Arc = Arc::new(FakeAlloc { len_bytes: 32 }); + let weak_owner = Arc::downgrade(&owner); + // SAFETY: only metadata and access bookkeeping are inspected; the + // synthetic device pointer is never dereferenced or submitted. + let tensor = unsafe { Tensor::::from_foreign(owner, vec![8], vec![1]) }; + let id = tensor.storage.register_access(1, true, false).unwrap(); + let lease = tensor.storage.completion_lease(id); + + let buffer = tensor.into_buffer(); + assert!( + buffer.storage().is_unique(), + "completion is not a user view" + ); + assert!(buffer.storage().acquire_on_stream(2, false, false).is_err()); + + let alias = buffer.storage().clone(); + assert!( + !buffer.storage().is_unique(), + "real aliases must still count" + ); + drop(alias); + assert!(buffer.storage().is_unique()); + + drop(buffer); + assert!( + weak_owner.upgrade().is_some(), + "in-flight work retains memory" + ); + drop(lease); + assert!(weak_owner.upgrade().is_none(), "retirement releases memory"); + } + + #[test] + fn into_buffer_keeps_recorded_graph_storage_as_an_alias() { + let owner: Arc = Arc::new(FakeAlloc { len_bytes: 32 }); + // SAFETY: metadata-only; no work is submitted with the fake pointer. + let tensor = unsafe { Tensor::::from_foreign(owner, vec![8], vec![1]) }; + let recorded = tensor.storage.acquire(1, true, true).unwrap(); + let buffer = tensor.into_buffer(); + assert!( + !buffer.storage().is_unique(), + "a graph can access storage again" + ); + drop(recorded); + assert!(buffer.storage().is_unique()); + } + #[test] fn recording_keeps_storage_without_claiming_executed_access() { let tensor = meta_f32(&[8]); From dd7eb323464ae9dde8e271418960afd2082c2393 Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Fri, 30 Oct 2026 11:46:18 -0700 Subject: [PATCH 15/17] fix(ci): run shared host interop before reporting GPU test results Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- cuda-oxide/cuda-oxide-book/appendix/glossary.md | 5 +++-- cutile-rs/scripts/run_gpu_tests.sh | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cuda-oxide/cuda-oxide-book/appendix/glossary.md b/cuda-oxide/cuda-oxide-book/appendix/glossary.md index 8ccc3b91e6..a24d8b6088 100644 --- a/cuda-oxide/cuda-oxide-book/appendix/glossary.md +++ b/cuda-oxide/cuda-oxide-book/appendix/glossary.md @@ -55,8 +55,9 @@ cores, atomics, and debug facilities. Safe RAII wrappers around the CUDA Driver API: `CudaContext`, `CudaStream`, `DeviceBuffer`, and module loading. Handles GPU context and memory management on the host side. Shared with cutile-rs and maintained at the repository root -(`cuda-core/`); the cuda-oxide surface is re-exported at the crate root except -`LaunchConfig`, `vmm`, `peer`, and `memory`. +(`cuda-core/`). Both programming models use its shared `Context`, `Stream`, +`LaunchConfig` and typed allocation storage. A `Device` identifies the physical GPU; +a `Context` identifies an execution context on that GPU. ## `DeviceOperation` diff --git a/cutile-rs/scripts/run_gpu_tests.sh b/cutile-rs/scripts/run_gpu_tests.sh index bf089a595f..ecd429c0cc 100755 --- a/cutile-rs/scripts/run_gpu_tests.sh +++ b/cutile-rs/scripts/run_gpu_tests.sh @@ -278,9 +278,9 @@ do gpu_test host cuda-async "$test_target" done +run_gpu_step "shared Tile and SIMT host buffer interop" \ + gpu_test tile cutile shared_host_buffers --serial + print_summary_and_exit \ "All GPU tests passed!" \ "Some GPU tests failed. See output above for details." - -run_gpu_step "shared Tile and SIMT host buffer interop" \ - gpu_test tile cutile shared_host_buffers --serial From 04d17ef088c3255f5d56e7eed69ca636ee839a90 Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Fri, 30 Oct 2026 11:51:12 -0700 Subject: [PATCH 16/17] fix(ci): refresh math_special lockfile for shared host API dependencies Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- .../examples/math_special/Cargo.lock | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_special/Cargo.lock b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_special/Cargo.lock index 71036a0499..4d5918c472 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/math_special/Cargo.lock +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/math_special/Cargo.lock @@ -55,6 +55,26 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -143,8 +163,10 @@ name = "cuda-core" version = "0.5.0" dependencies = [ "anyhow", + "bytemuck", "cuda-bindings", "cuda-core-derive", + "cuda-repr", "half", "oxide-artifacts", ] @@ -162,7 +184,9 @@ dependencies = [ name = "cuda-device" version = "0.2.1" dependencies = [ + "bytemuck", "cuda-macros", + "cuda-repr", ] [[package]] @@ -192,6 +216,10 @@ dependencies = [ "syn", ] +[[package]] +name = "cuda-repr" +version = "0.5.0" + [[package]] name = "cuda-target-spec" version = "0.1.0" @@ -256,6 +284,7 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "zerocopy", From 117205c1277a9e6d422df20499342690b412bc16 Mon Sep 17 00:00:00 2001 From: Melih Elibol <1884921+elibol@users.noreply.github.com> Date: Fri, 30 Oct 2026 11:58:56 -0700 Subject: [PATCH 17/17] fix(examples): migrate expanded atomics example to owned conversions Signed-off-by: Melih Elibol <1884921+elibol@users.noreply.github.com> --- .../examples/atomics/src/main.rs | 124 ++++++++++-------- 1 file changed, 71 insertions(+), 53 deletions(-) diff --git a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/src/main.rs b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/src/main.rs index fdae19c60c..67e33197c4 100644 --- a/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/src/main.rs +++ b/cuda-oxide/crates/rustc-codegen-cuda/examples/atomics/src/main.rs @@ -64,7 +64,7 @@ mod kernels { // Shared atomic storage arrives as slices of atomic wrapper types: the // host allocates plain buffers and retypes them with - // `cast_elem::()`, so every shared update goes through + // `wrap_elem::()`, so every shared update goes through // interior mutability and the kernels need no raw pointers. /// Test 1: Atomic fetch_add -- every thread atomically increments a counter. @@ -740,7 +740,7 @@ fn main() { // Allocate a single u32 counter initialized to 0 let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -750,7 +750,7 @@ fn main() { stream.synchronize().unwrap(); // The counter should equal N after all threads increment it - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let out_vals = out_dev.to_host_vec(&stream).unwrap(); if counter_val[0] == N as u32 { @@ -783,7 +783,7 @@ fn main() { { let flag_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -815,7 +815,7 @@ fn main() { { let winner_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -824,7 +824,7 @@ fn main() { stream.synchronize().unwrap(); - let winner_val = winner_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let winner_val = winner_dev.peel_elem::().to_host_vec(&stream).unwrap(); let result = out_dev.to_host_vec(&stream).unwrap(); let num_winners: usize = result.iter().filter(|&&x| x == 1).count(); @@ -849,7 +849,7 @@ fn main() { { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -859,7 +859,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let out_vals = out_dev.to_host_vec(&stream).unwrap(); if counter_val[0] == N as u32 { @@ -892,7 +892,7 @@ fn main() { { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -902,7 +902,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let out_vals = out_dev.to_host_vec(&stream).unwrap(); if counter_val[0] == N as u32 { @@ -935,10 +935,10 @@ fn main() { { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let cas_target_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -954,9 +954,9 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let cas_val = cas_target_dev - .cast_elem::() + .peel_elem::() .to_host_vec(&stream) .unwrap(); let result = out_dev.to_host_vec(&stream).unwrap(); @@ -994,7 +994,7 @@ fn main() { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, total_threads).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1009,7 +1009,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let out_vals = out_dev.to_host_vec(&stream).unwrap(); if counter_val[0] == total_threads as u32 { @@ -1045,7 +1045,7 @@ fn main() { { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1055,7 +1055,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let out_vals = out_dev.to_host_vec(&stream).unwrap(); if counter_val[0] == N as u64 { @@ -1085,10 +1085,10 @@ fn main() { { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let cas_target_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1104,9 +1104,9 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let cas_val = cas_target_dev - .cast_elem::() + .peel_elem::() .to_host_vec(&stream) .unwrap(); let result = out_dev.to_host_vec(&stream).unwrap(); @@ -1138,7 +1138,7 @@ fn main() { let counter_host: Vec = vec![N as u32]; let counter_dev = DeviceBuffer::from_host(&stream, &counter_host) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1146,7 +1146,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let out_vals = out_dev.to_host_vec(&stream).unwrap(); if counter_val[0] == 0 { @@ -1177,16 +1177,16 @@ fn main() { // OR accumulator: starts at 0 let or_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); // AND accumulator: starts at 0xFFFFFFFF let and_host: Vec = vec![0xFFFFFFFF]; let and_dev = DeviceBuffer::from_host(&stream, &and_host) .unwrap() - .cast_elem::(); + .wrap_elem::(); // XOR accumulator: starts at 0 let xor_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); @@ -1204,9 +1204,9 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let or_val = or_dev.cast_elem::().to_host_vec(&stream).unwrap()[0]; - let and_val = and_dev.cast_elem::().to_host_vec(&stream).unwrap()[0]; - let xor_val = xor_dev.cast_elem::().to_host_vec(&stream).unwrap()[0]; + let or_val = or_dev.peel_elem::().to_host_vec(&stream).unwrap()[0]; + let and_val = and_dev.peel_elem::().to_host_vec(&stream).unwrap()[0]; + let xor_val = xor_dev.peel_elem::().to_host_vec(&stream).unwrap()[0]; // With N=256 threads and tid % 32, all 32 bits should be set let or_ok = or_val == 0xFFFFFFFF; @@ -1235,7 +1235,7 @@ fn main() { { let target_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1243,7 +1243,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let target_val = target_dev.cast_elem::().to_host_vec(&stream).unwrap()[0]; + let target_val = target_dev.peel_elem::().to_host_vec(&stream).unwrap()[0]; let result = out_dev.to_host_vec(&stream).unwrap(); // Thread 0 swapped 0 -> 0xDEADBEEF, got back 0 @@ -1276,10 +1276,10 @@ fn main() { let max_host: Vec = vec![i32::MIN]; let min_dev = DeviceBuffer::from_host(&stream, &min_host) .unwrap() - .cast_elem::(); + .wrap_elem::(); let max_dev = DeviceBuffer::from_host(&stream, &max_host) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1289,8 +1289,8 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let min_val = min_dev.cast_elem::().to_host_vec(&stream).unwrap()[0]; - let max_val = max_dev.cast_elem::().to_host_vec(&stream).unwrap()[0]; + let min_val = min_dev.peel_elem::().to_host_vec(&stream).unwrap()[0]; + let max_val = max_dev.peel_elem::().to_host_vec(&stream).unwrap()[0]; // With 256 threads, values range from -128 to +127 let min_ok = min_val == -128; @@ -1312,7 +1312,7 @@ fn main() { { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1322,7 +1322,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let result = out_dev.to_host_vec(&stream).unwrap(); let expected = N as f32; @@ -1349,7 +1349,7 @@ fn main() { { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1359,7 +1359,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let result = out_dev.to_host_vec(&stream).unwrap(); let expected = N as f64; @@ -1385,7 +1385,7 @@ fn main() { { let target_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1393,7 +1393,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let target_val = target_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let target_val = target_dev.peel_elem::().to_host_vec(&stream).unwrap(); let result = out_dev.to_host_vec(&stream).unwrap(); // target should now hold 3.14 (swapped by thread 0) @@ -1422,11 +1422,11 @@ fn main() { let min_host = vec![u32::MAX; 1]; let min_dev = DeviceBuffer::from_host(&stream, &min_host) .unwrap() - .cast_elem::(); + .wrap_elem::(); // Initialize max accumulator to 0 so any tid beats it let max_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1442,8 +1442,8 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let min_val = min_dev.cast_elem::().to_host_vec(&stream).unwrap(); - let max_val = max_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let min_val = min_dev.peel_elem::().to_host_vec(&stream).unwrap(); + let max_val = max_dev.peel_elem::().to_host_vec(&stream).unwrap(); let min_ok = min_val[0] == 0; // thread 0's tid let max_ok = max_val[0] == (N as u32 - 1); // thread 255's tid @@ -1473,7 +1473,7 @@ fn main() { { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1483,7 +1483,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let result = out_dev.to_host_vec(&stream).unwrap(); let counter_ok = counter_val[0] == N as u32; @@ -1520,7 +1520,7 @@ fn main() { { let counter_dev = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .wrap_elem::(); let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1535,7 +1535,7 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let counter_val = counter_dev.peel_elem::().to_host_vec(&stream).unwrap(); let result = out_dev.to_host_vec(&stream).unwrap(); let counter_ok = counter_val[0] == N as u32; @@ -1569,9 +1569,22 @@ fn main() { // ========================================================================= println!("\n--- Test 20: core_atomic_fetch_add_test (core::sync::atomic) ---"); { - let counter_dev = DeviceBuffer::::zeroed(&stream, 1) + // Standard-library atomics have no DeviceRepr impl. Transfer the owned + // allocation explicitly without creating shared integer references. + assert_eq!(size_of::(), size_of::()); + assert_eq!( + align_of::(), + align_of::() + ); + let (ptr, len, context) = DeviceBuffer::::zeroed(&stream, 1) .unwrap() - .cast_elem::(); + .into_raw_parts(); + // SAFETY: zeroed completed initialization; the checked layout covers + // one AtomicU32 with valid zero bits. Ownership and context transfer + // exactly once, and no kernel can access the allocation yet. + let counter_dev = unsafe { + DeviceBuffer::::from_raw_parts(ptr, len, context) + }; let mut out_dev = DeviceBuffer::::zeroed(&stream, N).unwrap(); // SAFETY: launch shape/resources match the kernel; buffers cover its accesses. @@ -1581,7 +1594,12 @@ fn main() { .expect("Kernel launch failed"); stream.synchronize().unwrap(); - let counter_val = counter_dev.cast_elem::().to_host_vec(&stream).unwrap(); + let (ptr, len, context) = counter_dev.into_raw_parts(); + // SAFETY: synchronization above finished every atomic access. The same + // allocation now contains initialized u32 values with the checked + // layout, and its ownership/context transfer exactly once for readback. + let counter_dev = unsafe { DeviceBuffer::::from_raw_parts(ptr, len, context) }; + let counter_val = counter_dev.to_host_vec(&stream).unwrap(); let result = out_dev.to_host_vec(&stream).unwrap(); let counter_ok = counter_val[0] == N as u32;