[package]
edition = "2024"
rust-version = "1.89"
name = "rlx-opscope"
version = "0.2.18"
authors = [
"Eugene Hauptmann",
"Nataliya Kosmyna",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Data-pattern recording harness — inject stat taps into op graphs, sweep synthetic distributions, and mine exploitable structure for specialized kernels"
documentation = "https://docs.rs/rlx"
readme = "README.md"
keywords = [
"ml",
"tensor",
"compiler",
"neural-network",
"autodiff",
]
categories = [
"science",
"algorithms",
"compilers",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/MIT-RLX/rlx"
resolver = "2"
[package.metadata.docs.rs]
features = [
"decompose",
"allocate",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
all-features = false
[features]
allocate = ["decompose"]
amx = ["decompose"]
apple = [
"dotprod",
"amx",
]
cuda = ["rlx-runtime/cuda"]
decompose = []
default = []
dotprod = ["neon"]
gpu = ["rlx-runtime/gpu"]
metal = ["rlx-runtime/metal"]
neon = ["decompose"]
parquet = [
"dep:arrow-array",
"dep:arrow-schema",
"dep:parquet",
]
[lib]
name = "rlx_opscope"
path = "src/lib.rs"
[[bin]]
name = "opscope-actions"
path = "src/bin/actions.rs"
required-features = ["allocate"]
[[bin]]
name = "opscope-bytes"
path = "src/bin/bytes.rs"
[[bin]]
name = "opscope-flow"
path = "src/bin/flow.rs"
[[bin]]
name = "opscope-graph"
path = "src/bin/graph.rs"
[[bin]]
name = "opscope-guarded"
path = "src/bin/guarded.rs"
[[bin]]
name = "opscope-infer"
path = "src/bin/infer.rs"
[[bin]]
name = "opscope-kernels"
path = "src/bin/kernels.rs"
required-features = ["decompose"]
[[bin]]
name = "opscope-layers"
path = "src/bin/layers.rs"
required-features = ["allocate"]
[[bin]]
name = "opscope-live"
path = "src/bin/live.rs"
[[bin]]
name = "opscope-llm"
path = "src/bin/llm.rs"
[[bin]]
name = "opscope-mine"
path = "src/bin/mine.rs"
[[bin]]
name = "opscope-mnist"
path = "src/bin/mnist.rs"
[[bin]]
name = "opscope-motifs"
path = "src/bin/motifs.rs"
[[bin]]
name = "opscope-optimize"
path = "src/bin/optimize.rs"
[[bin]]
name = "opscope-parity"
path = "src/bin/parity.rs"
[[bin]]
name = "opscope-plan"
path = "src/bin/plan.rs"
[[bin]]
name = "opscope-probe"
path = "src/bin/probe.rs"
[[bin]]
name = "opscope-replay"
path = "src/bin/replay.rs"
[[bin]]
name = "opscope-seq"
path = "src/bin/seq.rs"
[[bin]]
name = "opscope-shapes"
path = "src/bin/shapes.rs"
[[bin]]
name = "opscope-sweep"
path = "src/bin/sweep.rs"
[dependencies.arrow-array]
version = "53"
optional = true
[dependencies.arrow-schema]
version = "53"
optional = true
[dependencies.parquet]
version = "53"
features = [
"arrow",
"snap",
]
optional = true
default-features = false
[dependencies.rlx-autodiff]
version = "0.2.18"
[dependencies.rlx-fusion]
version = "0.2.18"
[dependencies.rlx-ir]
version = "0.2.18"
[dependencies.rlx-runtime]
version = "0.2.18"
features = ["cpu"]
default-features = false
[lints.cargo]
unused_dependencies = "allow"
unused_workspace_dependencies = "allow"
[lints.clippy]
collapsible_if = "allow"
doc_lazy_continuation = "allow"
doc_overindented_list_items = "allow"
large_enum_variant = "allow"
manual_range_contains = "allow"
missing_safety_doc = "allow"
needless_range_loop = "allow"
should_implement_trait = "allow"
single_range_in_vec_init = "allow"
too_many_arguments = "allow"
type_complexity = "allow"
unnecessary_wraps = "allow"
upper_case_acronyms = "allow"
useless_conversion = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.rust.unused]
level = "warn"
priority = 0