Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
60 lines (56 loc) · 2.32 KB
/
Copy pathCargo.toml
File metadata and controls
60 lines (56 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
[workspace]
resolver = "3"
members = [
# The domain: time budgets, sync promises, plans, kernel IR. Pure, and
# free of wgpu and naga, so it reads the same on native and on wasm.
"crates/beatlm-core",
# The umbrella: what a user depends on. Turns the core's decisions into
# GPU work through wgpu, and owns the translation from outside formats.
"crates/beatlm",
# What both hosts compile, and only that: the synthetic load, the depth
# model's slots, the pass-cost measurement and the report's statistics.
# Reads no clock, so it builds for wasm too. Not published.
"crates/beatlm-host",
# A headless host: drives the umbrella with a synthetic GPU load and reports
# what it measured. Not published.
"crates/beatlm-bench",
# The browser host: the same synthetic load driven from
# requestAnimationFrame on WebGPU, reported into the page. Not published.
"crates/beatlm-web",
]
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.87"
authors = ["Yutaka Nishimura <ytk.nishimura@gmail.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/ynishi/beatlm"
homepage = "https://github.com/ynishi/beatlm"
[workspace.dependencies]
beatlm-core = { path = "crates/beatlm-core", version = "0.1.0" }
beatlm = { path = "crates/beatlm", version = "0.1.0" }
beatlm-host = { path = "crates/beatlm-host", version = "0.1.0" }
thiserror = "2"
anyhow = "1"
pollster = "1"
# The safetensors header parser. `std` is left off on purpose: it adds file
# writing through `tempfile`, which the reader never uses, and std-backed
# serde and maps; without it the crate parses from bytes in its no_std mode
# (`alloc` is the marker feature for it), which is also what a browser has.
safetensors = { version = "0.8", default-features = false, features = ["alloc"] }
# Native backends we target first, plus the browser. `wgsl` is the only
# shader input: kernels are generated as WGSL text and validated by naga.
wgpu = { version = "30", default-features = false, features = [
"std",
"wgsl",
"metal",
"vulkan",
"webgpu",
] }
naga = { version = "30", default-features = false, features = ["wgsl-in"] }
[workspace.lints.rust]
missing_docs = "warn"
unsafe_code = "forbid"
[workspace.lints.clippy]
unwrap_used = "warn"
expect_used = "warn"