Reworked the README and tutorials around first-time CUDA users, with clearer Windows and Linux setup, strict CUDA examples, task-oriented workflows, and an evidence-backed performance guide.
Kept maintainer roadmaps and hardware-validation details out of the public pkgdown site, and added checks that prevent those internal pages and testing machine descriptions from being published again.
Added the cudaverse package logo and aligned package, website, and organization branding.
cudaverse 0.4.0
Replaced the base kNN backend’s full per-row stable ordering with bounded C++ stable top-k selection while preserving exact indices, deterministic distance-then-row ties, provenance, and numerical parity.
Kept torch kNN distance blocks and deterministic stable top-k selection on the selected torch device when the installed torch API supports stable sort; only the final n-by-k indices and distances are transferred to R.
Bound final 0.4 candidate evidence to two independent, isolated native R sessions with exact source, hardware, injected-error recovery, allocator cleanup, workflow, process-exit, and SHA-256 checks.
Pinned generated pkgdown Pages commits to Yaoxiang Li’s GitHub-linked identity and made that authorship configuration a release-boundary gate.
Unified benchmark memory collection with the public cuda_memory_info() contract while retaining native peak reset as an untimed maintainer-only measurement action.
Added a maintainer native-session contract that installs the exact source in an isolated library, runs two fresh R processes through dense, sparse, PCA/kNN, injected-error recovery, exact allocator cleanup, backend reuse, and clean process exit.
Added cuda_memory_info() for backend-aware memory observability. Native reports CUDA-driver totals plus cudaverse-owned current and peak bytes; torch reports allocated and reserved allocator bytes, while unsupported counters remain explicit NA values.
Diffusion maps now retain the device-resident input stage in provenance. Native PCA scores are reused directly by CUDA distance instead of being uploaded again; kernel construction and eigendecomposition remain explicit CPU stages.
Started the isolated 0.4 development line from the exact review-ready 0.3 candidate while keeping the 0.3 source and evidence unchanged.
Extended cuda_diagnostics() with a concise health status, human-readable summary, actionable next_steps, and a backend comparison table. Strict CUDA-unavailable conditions now retain the same reason and guidance.
Added the ordered 0.4 roadmap and enabled development-line CI coverage.
Made native CUDA reshape allocation-free by separating dense view metadata from shared device-allocation ownership. Nested reshape views remain valid after their sources are released and free the allocation exactly once.
Kept same-backend CUDA tensor replacement device-resident when the replacement needs a compatible floating dtype cast, with the cast recorded in provenance.
Made cuda_tensor() cast an existing tensor through its current backend when the requested device is unchanged, avoiding a download/upload round trip.
Made contiguous native CUDA subsets allocation-free shared views while retaining device gather for non-contiguous selections.
Added explicit, provenance-recorded distance batching across base, torch, and native backends. Native execution retains input/reference storage and cached reference norms across blocks, bounding peak device memory.
Added explicit k-means batching with a backward-compatible backend contract. Native Lloyd iterations now keep data, centres, assignments, and updates on the GPU while bounding temporary distance storage by observation batch.
Kept native PCA prediction scores in shared device storage after returning their compatible R matrix, allowing following distance and kNN stages to reuse the scores without an upload.
Added device-side finite/constant validation and resident SVD/PCA dispatch for native cudatensor inputs. Float32 and integer inputs cast on the GPU; the full input matrix is no longer downloaded and uploaded for decomposition.
Kept native sparse-normalization output resident without downloading the margin-sum or normalized-value vectors. The required public COO mirror is updated from its existing host metadata, while device validation returns only one small status flag.
Made native sparse normalization share immutable CSR/COO index allocations with its source through independent reference counting. Normalized results allocate only new values, remain valid after either release order, and free shared pattern storage exactly once.
Made cuda_sparse() rematerialize an existing cudasparse object directly from its stable COO mirror. Same-device format changes share storage, while cross-device transfers and zero filtering avoid a temporary Matrix object, summary pass, and redundant coordinate sort.
Removed Matrix construction from sparse PCA preprocessing and sparse algorithm transfers. Constant-column checks run directly on the COO mirror only when scaling is requested; unscaled PCA skips that scan entirely.
cudaverse 0.3.0.9000
Added reproducible full-benchmark Markdown generation and validation. The retained assessment is bound to the exact machine-readable report by its SHA-256 and source commit, and incomplete drafts cannot pass the final summary gate.
Added a machine-readable 0.3 benchmark contract and report runner for synchronized base, torch, and native measurements. The full profile fixes workload sizes, warmup/run counts, transfer boundaries, numerical gates, peak-memory sources, installed size, and provenance without treating an inseparable dense-PCA upload as a measured transfer duration.
Added an executable public-backend conformance matrix. Every exported function is assigned to a diagnostics, tensor, sparse, algorithm, graph, or embedding contract case, and the shared suite runs the same small workflows on base, torch, and native when CUDA hardware coverage is required.
Added t() for cudasparse matrices. Native CUDA transposes CSR backing storage on device while preserving stable COO metadata, logical format, dimnames, shared ownership, and same-device provenance; compatibility backends rebuild storage from the already-public COO metadata.
Added registry-driven resident native CUDA k-means. Observations and centres are uploaded once; distance, stable assignment, accumulation, and Lloyd centre updates remain on device, with compact convergence and final-result transfers. The base and torch compatibility paths are unchanged.
Added registry-driven, device-native tensor subsetting and replacement for the native CUDA backend, including dtype preservation, dimnames, R recycling, and deterministic last-write handling for duplicate indices.
Added a backend registry and integrated the lightweight native CUDA implementation into cudaverse without changing the public device API.
Added sparse inputs to cuda_pca() and cuda_knn(); the native path expands them on the GPU and continues through the existing resident dense pipeline.
Kept PCA -> distance -> top-k intermediate data on the GPU for the native path and retained the cudaverse-stage/1 provenance schema.
Preserved portable CPU behavior and the optional torch compatibility backend.
Added capability-gated automatic native selection. Native is preferred only when the native contract, complete tensor/algorithm capability set, driver/cuBLAS/cuSOLVER/PTX runtime, and cached runtime self-test all pass; otherwise torch or the recorded CPU fallback retains compatibility.
Added native float32 matmul plus device-native element-wise arithmetic, trailing-dimension broadcasting, reshape, and transpose coverage required by the global automatic-selection gate.
Required SVD and PCA prediction compatibility in that same fail-closed gate, and published the bounded Phase 4 release-candidate assessment with links to the checksum-pinned RTX evidence.
cudaverse 0.1.0
Establishes the general-purpose cudaverse API.
Adds dense tensor and sparse matrix functionality.
Adds numerical algorithms, graph workflows, and embedding workflows.
Preserves the canonical cuda_provenance() protocol across all modules.
Keeps SingleCellExperiment support optional and accepts its reduced dimensions at the embedding boundary without making Bioconductor or Seurat required dependencies.
Fixes CUDA indexing, R column-major reshape semantics, and exact self-distance diagonals for compatibility with R torch 0.17.
Documents the measured, benchmark-gated roadmap toward a lightweight native CUDA backend while retaining the current portable CPU fallback.