# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.75"
name = "ringkernel-cuda"
version = "1.1.0"
authors = ["Michael Ivertowski <mivertowski@outlook.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "CUDA backend for RingKernel - NVIDIA GPU support via cudarc"
homepage = "https://github.com/mivertowski/RustCompute"
readme = "README.md"
keywords = [
    "gpu",
    "actor",
    "cuda",
    "nvidia",
]
categories = ["hardware-support"]
license = "Apache-2.0"
repository = "https://github.com/mivertowski/RustCompute"

[features]
cooperative = ["cuda"]
cuda = ["cudarc"]
default = []
multi-gpu = [
    "cuda",
    "nvml-wrapper",
]
nvshmem = [
    "cuda",
    "multi-gpu",
]
profiling = [
    "cuda",
    "serde",
    "serde_json",
]
ptx-cache = [
    "cuda",
    "sha2",
    "tempfile",
]

[lib]
name = "ringkernel_cuda"
path = "src/lib.rs"

[[test]]
name = "actor_lifecycle_proof"
path = "tests/actor_lifecycle_proof.rs"

[[test]]
name = "cluster_launch"
path = "tests/cluster_launch.rs"

[[test]]
name = "cooperative_benchmark"
path = "tests/cooperative_benchmark.rs"

[[test]]
name = "cuda_graphs_benchmark"
path = "tests/cuda_graphs_benchmark.rs"

[[test]]
name = "gpu_actor_integration"
path = "tests/gpu_actor_integration.rs"

[[test]]
name = "gpu_execution_verify"
path = "tests/gpu_execution_verify.rs"

[[test]]
name = "hierarchical_work_steal"
path = "tests/hierarchical_work_steal.rs"

[[test]]
name = "multi_stream_overlap"
path = "tests/multi_stream_overlap.rs"

[[test]]
name = "paper_lifecycle_overhead"
path = "tests/paper_lifecycle_overhead.rs"

[[test]]
name = "paper_multi_gpu_k2k_bw"
path = "tests/paper_multi_gpu_k2k_bw.rs"

[[test]]
name = "paper_nvlink_migration"
path = "tests/paper_nvlink_migration.rs"

[[test]]
name = "paper_snapshot_restart"
path = "tests/paper_snapshot_restart.rs"

[[test]]
name = "paper_tier_latency"
path = "tests/paper_tier_latency.rs"

[[test]]
name = "streaming_pipeline_proof"
path = "tests/streaming_pipeline_proof.rs"

[[test]]
name = "sustained_throughput"
path = "tests/sustained_throughput.rs"

[[test]]
name = "warp_work_steal"
path = "tests/warp_work_steal.rs"

[dependencies.async-trait]
version = "0.1"

[dependencies.cudarc]
version = "0.19.3"
features = [
    "cuda-version-from-build-system",
    "nvtx",
]
optional = true

[dependencies.futures]
version = "0.3"

[dependencies.nvml-wrapper]
version = "0.12"
optional = true

[dependencies.parking_lot]
version = "0.12"

[dependencies.ringkernel-core]
version = "1.1.0"

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true

[dependencies.serde_json]
version = "1.0"
optional = true

[dependencies.sha2]
version = "0.10"
optional = true

[dependencies.tempfile]
version = "3.9"
optional = true

[dependencies.thiserror]
version = "2.0"

[dependencies.tokio]
version = "1.48"
features = ["full"]

[dependencies.tracing]
version = "0.1"

[dev-dependencies.tempfile]
version = "3.9"

[dev-dependencies.tokio]
version = "1.48"
features = [
    "full",
    "test-util",
    "macros",
    "rt-multi-thread",
]
