[package]
edition = "2024"
name = "ruda-optim"
version = "0.21.39"
authors = ["nathanielsimard <nathaniel.simard.42@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Ruda optimizer updates, gradient state, clipping and learning-rate schedules."
documentation = "https://github.com/shuqi2077/RUDA/blob/main/docs/en/README.md"
readme = "README.md"
keywords = [
"deep-learning",
"machine-learning",
"tensor",
"pytorch",
"ndarray",
]
categories = [
"science",
"no-std",
"embedded",
"wasm",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/shuqi2077/RUDA/tree/main/ruda-optim"
[package.metadata.docs.rs]
features = ["doc"]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
collective = [
"std",
"ruccl",
"dep:serde_json",
]
cuda = [
"dep:ruda-tensor-device",
"serde/default",
"serde_json/default",
]
default = [
"std",
"ruda-model/default",
]
distributed = [
"std",
"ruda-model/distributed",
]
doc = [
"std",
"ruda-model/doc",
]
fused-adamw = ["std"]
fused-adamw-cuda = [
"fused-adamw-device",
"dep:serde_json",
"dep:ruda-driver-cuda",
"ruda-driver-cuda/direct-ptx",
]
fused-adamw-device = [
"fused-adamw",
"dep:ruda-core",
"dep:ruda-kernel",
"ruda-kernel/frontend-std",
"ruda-kernel/device-tensor",
]
fusion = [
"dep:ruda-fusion",
"ruda-kernel/frontend-std",
"ruda-kernel/frontend-tracing",
"ruda-core/id-tests-std",
]
gradient-guard = ["fused-adamw"]
gradient-guard-cuda = [
"gradient-guard-device",
"fused-adamw-cuda",
]
gradient-guard-device = [
"gradient-guard",
"fused-adamw-device",
]
std = [
"ruda-model/std",
"num-traits/std",
"serde/std",
"log",
]
test-cuda = [
"cuda",
"ruda-tensor-device/cuda-default",
"ruda-core/id-tests-std",
]
test-memory-checks = [
"fusion",
"ruda-fusion/memory-checks",
]
test-metal = [
"test-wgpu",
"ruda-tensor-wgpu/metal",
]
test-rocm = ["ruda-tensor-rocm/default"]
test-tch = ["ruda-tensor-tch/default"]
test-vulkan = [
"test-wgpu",
"ruda-tensor-wgpu/vulkan",
]
test-wgpu = ["ruda-tensor-wgpu/default"]
tracing = [
"ruccl?/tracing",
"ruda-model/tracing",
"ruda-tensor-device?/tracing",
"ruda-fusion?/tracing",
"ruda-tensor-remote?/tracing",
"ruda-tensor-rocm?/tracing",
"ruda-tensor-router?/tracing",
"ruda-tensor-tch?/tracing",
"ruda-tensor-wgpu?/tracing",
]
[lib]
name = "ruda_optim"
path = "src/lib.rs"
[[example]]
name = "collective_training"
path = "examples/collective_training.rs"
required-features = [
"std",
"collective",
]
[[example]]
name = "fused-adamw-bench"
path = "examples/fused_adamw_bench.rs"
required-features = ["fused-adamw-cuda"]
[[example]]
name = "gradient-guard-bench"
path = "examples/gradient_guard_bench.rs"
required-features = ["gradient-guard-cuda"]
[[example]]
name = "muon-training"
path = "examples/muon_training.rs"
required-features = ["std"]
[[test]]
name = "fused-adamw-cuda"
path = "tests/fused_adamw_cuda.rs"
required-features = ["fused-adamw-cuda"]
[[test]]
name = "gradient-guard-cuda"
path = "tests/gradient_guard_cuda.rs"
required-features = ["gradient-guard-cuda"]
[dependencies.derive-new]
version = "0.7.0"
default-features = false
[dependencies.hashbrown]
version = "0.16"
features = ["serde"]
[dependencies.log]
version = "0.4.29"
optional = true
default-features = false
[dependencies.num-traits]
version = "0.2.19"
features = ["libm"]
default-features = false
[dependencies.ruccl]
version = "0.21.32"
optional = true
default-features = false
package = "ruCCL"
[dependencies.ruda-core]
version = "0.1.5"
optional = true
default-features = false
[dependencies.ruda-driver-cuda]
version = "0.1.35"
optional = true
[dependencies.ruda-fusion]
version = "0.21.28"
features = [
"std",
"tracing",
]
optional = true
default-features = false
[dependencies.ruda-kernel]
version = "0.1.12"
features = ["frontend"]
optional = true
default-features = false
[dependencies.ruda-model]
version = "0.21.35"
default-features = false
[dependencies.ruda-tensor-device]
version = "0.21.29"
features = ["cuda"]
optional = true
default-features = false
[dependencies.ruda-tensor-remote]
version = "0.21.28"
optional = true
default-features = false
[dependencies.ruda-tensor-rocm]
version = "0.21.28"
optional = true
default-features = false
[dependencies.ruda-tensor-router]
version = "0.21.29"
optional = true
default-features = false
[dependencies.ruda-tensor-tch]
version = "0.21.40"
features = ["default"]
optional = true
default-features = false
[dependencies.ruda-tensor-wgpu]
version = "0.21.28"
optional = true
default-features = false
[dependencies.serde]
version = "1.0.228"
features = [
"derive",
"alloc",
"derive",
]
default-features = false
[dependencies.serde_json]
version = "1.0.148"
optional = true
default-features = false
[dev-dependencies.rstest]
version = "0.26.1"
[lints.clippy]
[lints.rustdoc]
broken_intra_doc_links = "deny"
invalid_html_tags = "deny"