ruDNN 0.2.0

Neural network operators for Ruda.
Documentation
# 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 = "2024"
name = "ruDNN"
version = "0.2.0"
authors = [
    "Genna Wingert",
    "louisfd <louisfd94@gmail.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Neural network operators for Ruda."
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/shuqi2077/RUDA"

[features]
attention-fallback = [
    "dep:ruda-core",
    "ruda-core/tensor-elements",
    "ruda-core/tensor-device-settings",
    "dep:num-traits",
]
cann = ["dep:ruda-driver-cann"]
cpu-reference = [
    "kernel-ir",
    "dep:ruda-test-utils",
    "rublas/cpu-reference",
]
ctc = [
    "kernel-ir",
    "ruda-kernel/device-tensor",
    "ruda-core/tensor",
]
default = [
    "kernel-ir",
    "std",
]
extended = ["heavy"]
full = ["extended"]
grid-sample = ["interpolation"]
heavy = []
interpolation = [
    "kernel-ir",
    "ruda-kernel/device-tensor",
    "ruda-core/tensor",
]
kernel-ir = [
    "dep:ruda-core",
    "dep:ruda-kernel",
    "dep:rublas",
    "rublas/kernel-ir",
    "dep:bytemuck",
    "dep:derive-new",
    "dep:enumset",
    "dep:half",
    "dep:serde",
]
pooling = [
    "kernel-ir",
    "ruda-kernel/device-tensor",
    "ruda-core/tensor",
]
std = [
    "kernel-ir",
    "ruda-kernel/frontend-std",
    "rublas/std",
]
tensor-attention = [
    "attention-fallback",
    "kernel-ir",
    "ruda-kernel/device-tensor",
    "rublas/tensor-matmul",
    "dep:ruprim",
    "ruprim/elementwise",
    "ruprim/tensor-reduce",
]
tensor-attention-autotune = [
    "tensor-attention",
    "rublas/tensor-matmul-autotune",
    "ruprim/tensor-reduce-autotune",
]
tensor-convolution = [
    "kernel-ir",
    "ruda-kernel/device-tensor",
    "rublas/tensor-matmul",
    "dep:ruprim",
    "ruprim/indexing",
    "ruprim/tensor-reduce",
]
tensor-convolution-autotune = [
    "tensor-convolution",
    "rublas/tensor-matmul-autotune",
    "ruprim/tensor-reduce-autotune",
]
tensor-gated-delta = [
    "kernel-ir",
    "ruda-kernel/device-tensor",
    "rublas/tensor-matmul",
]
tensor-kda = [
    "kernel-ir",
    "ruda-kernel/device-tensor",
    "rublas/tensor-matmul",
]
tensor-moe = [
    "kernel-ir",
    "ruda-kernel/device-tensor",
    "rublas/tensor-grouped",
]
tensor-nf4-moe = [
    "tensor-moe",
    "rublas/tensor-nf4",
    "dep:ruprim",
    "ruprim/elementwise",
]
tensor-normalization = [
    "kernel-ir",
    "ruda-kernel/device-tensor",
]
tensor-packed-moe = [
    "tensor-nf4-moe",
    "rublas/tensor-int4",
]
tensor-paged-attention = [
    "kernel-ir",
    "ruda-kernel/device-tensor",
    "ruda-kernel/packed-quantization",
]

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

[[test]]
name = "attention"
path = "tests/attention/lib.rs"
required-features = [
    "kernel-ir",
    "cpu-reference",
]

[[test]]
name = "flash-training-layout"
path = "src/flash_training/tests.rs"

[[test]]
name = "flash-training-ptx"
path = "tests/flash_training_ptx.rs"
required-features = ["tensor-paged-attention"]

[[test]]
name = "convolution"
path = "tests/convolution/lib.rs"
required-features = [
    "kernel-ir",
    "cpu-reference",
]

[dependencies.bytemuck]
version = "1.16.1"
optional = true

[dependencies.derive-new]
version = "0.7.0"
optional = true
default-features = false

[dependencies.enumset]
version = "1.1.10"
optional = true
default-features = false

[dependencies.half]
version = "=2.7.1"
features = [
    "alloc",
    "num-traits",
    "serde",
    "bytemuck",
]
optional = true
default-features = false

[dependencies.num-traits]
version = "0.2.19"
features = ["libm"]
optional = true
default-features = false

[dependencies.rublas]
version = "0.2.0"
optional = true
default-features = false

[dependencies.ruda-core]
version = "0.1.13"
optional = true
default-features = false

[dependencies.ruda-driver-cann]
version = "0.2.0"
optional = true

[dependencies.ruda-kernel]
version = "0.1.52"
features = ["kernel-ir"]
optional = true
default-features = false

[dependencies.ruda-test-utils]
version = "0.2.0"
optional = true
default-features = false

[dependencies.ruprim]
version = "0.2.0"
optional = true
default-features = false
package = "ruPRIM"

[dependencies.serde]
version = "1.0.204"
features = [
    "derive",
    "alloc",
]
optional = true
default-features = false

[dev-dependencies.pretty_assertions]
version = "1.4"

[dev-dependencies.trybuild]
version = "1"