Files
foxhunt/crates/ml-supervised/src/gpu_tensor.rs
jgrusewski e068224830 refactor(dedup): consolidate GpuTensor/GpuLinear — ml-supervised→ml-core
Moved ml-supervised's duplicate GpuTensor (stream-carrying) + GpuLinear +
50 free functions to ml-core/cuda_autograd/stream_ops.rs as StreamTensor
and StreamLinear. ml-supervised/gpu_tensor.rs → 53 lines of re-exports.

Two tensor flavors now canonical in ml-core:
- GpuTensor: takes &Arc<CudaStream> per-call (autograd integration)
- StreamTensor: carries Arc<CudaStream> internally (self-contained ops)

Zero consumer import changes. Both crates compile clean.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 07:37:49 +01:00

63 lines
1.4 KiB
Rust

//! GPU tensor abstraction — re-exports from `ml_core::cuda_autograd::stream_ops`.
//!
//! The canonical implementations of `StreamTensor`, `StreamLinear`, and all
//! element-wise ops live in `ml-core`. This module re-exports them under the
//! legacy names `GpuTensor` / `GpuLinear` used throughout `ml-supervised`.
// Re-export the canonical types under their local names.
pub use ml_core::cuda_autograd::stream_ops::StreamTensor as GpuTensor;
pub use ml_core::cuda_autograd::stream_ops::StreamLinear as GpuLinear;
// Re-export all free functions.
pub use ml_core::cuda_autograd::stream_ops::{
gpu_abs,
gpu_add,
gpu_add_scalar,
gpu_affine,
gpu_broadcast_add_col,
gpu_broadcast_mul_col,
gpu_cat_dim0,
gpu_cat_dim1,
gpu_clamp,
gpu_cos,
gpu_div,
gpu_elu,
gpu_exp,
gpu_eye,
gpu_flatten,
gpu_floor,
gpu_full,
gpu_gather_dim0,
gpu_layer_norm,
gpu_log,
gpu_matmul,
gpu_max_scalar,
gpu_mean_all,
gpu_mean_keepdim_last,
gpu_minimum,
gpu_mul,
gpu_narrow_2d,
gpu_neg,
gpu_ones,
gpu_recip,
gpu_relu,
gpu_scale,
gpu_scalar_sub,
gpu_select_dim1,
gpu_sigmoid,
gpu_silu,
gpu_sin,
gpu_softmax,
gpu_sqr,
gpu_sqrt,
gpu_squeeze,
gpu_stack_2d,
gpu_stack_tensors,
gpu_sub,
gpu_sum_dim,
gpu_tanh,
gpu_transpose,
gpu_unsqueeze,
gpu_unsqueeze_broadcast,
};