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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
[]
= "taskflowrs"
= "0.1.1"
= "2021"
= "A Rust implementation of TaskFlow — task-parallel programming with heterogeneous GPU support"
= "https://github.com/ZigRazor/taskflow-rs"
= ["ZigRazor"]
= "https://docs.rs/taskflowrs"
= "MIT"
= ["task", "graph", "parallel", "async", "scheduler"]
= ["concurrency"]
# ─────────────────────────────────────────────────────────────────────────────
# Dependencies
# ─────────────────────────────────────────────────────────────────────────────
[]
= "1.16"
= "0.8"
= "0.4"
# Platform helpers (thread affinity on Linux for preemptive/hwloc fallback)
= "0.2"
# Async runtime (feature-gated)
= { = "1", = ["rt", "rt-multi-thread", "sync", "macros"], = true }
= { = "0.3", = true }
# ── hwloc hardware topology ───────────────────────────────────────────────────
# Provides rich hardware topology: NUMA, cache hierarchy, CPU binding.
# Requires libhwloc-dev (>= 2.0) to be installed:
# Ubuntu/Debian: apt install libhwloc-dev
# Fedora/RHEL: dnf install hwloc-devel
# macOS: brew install hwloc
= { = "2.2.0", = true }
# ── CUDA backend ──────────────────────────────────────────────────────────────
# cudarc provides safe Rust bindings to the CUDA Driver API.
# A specific CUDA version feature must be selected.
= { = "0.11", = ["std", "driver"], = true }
# ── OpenCL backend ────────────────────────────────────────────────────────────
# opencl3 provides safe OpenCL 3.0 bindings.
# Works with NVIDIA (via CUDA driver), AMD (ROCm), and Intel (oneAPI).
= { = "0.9", = true }
# ── ROCm/HIP backend ─────────────────────────────────────────────────────────
# No first-class Rust crate exists; we use raw FFI in gpu_rocm.rs.
# The `rocm` feature enables the FFI code; the amdhip64.so is linked at
# runtime from /opt/rocm/lib (set LD_LIBRARY_PATH before running).
# No extra Cargo dependency needed — just the feature flag.
# ─────────────────────────────────────────────────────────────────────────────
# Features
# ─────────────────────────────────────────────────────────────────────────────
[]
= []
# Tokio async integration
= ["tokio", "futures"]
# ── Hardware topology (hwloc) ──────────────────────────────────────────────────
# Enables rich hardware topology discovery and CPU/NUMA binding via hwloc2.
# Falls back gracefully to sysfs detection when this feature is absent.
= ["hwloc2"]
# ── CUDA (NVIDIA) ─────────────────────────────────────────────────────────────
# Default CUDA 12.0. Override for your installed version:
# gpu = ["cudarc", "cudarc/cuda-11080"] # CUDA 11.8
# gpu = ["cudarc", "cudarc/cuda-12050"] # CUDA 12.5
= ["cudarc", "cudarc/cuda-12000"]
# ── OpenCL (NVIDIA / AMD / Intel / Apple) ─────────────────────────────────────
= ["opencl3"]
# ── ROCm / HIP (AMD) ─────────────────────────────────────────────────────────
# Enables FFI bindings to libamdhip64.so (ROCm ≥ 5.0 required).
# Install: https://rocm.docs.amd.com/en/latest/deploy/linux/install.html
= []
# All GPU backends simultaneously (useful for benchmarking / selection)
= ["gpu", "opencl", "rocm"]
# ─────────────────────────────────────────────────────────────────────────────
# Build script — ROCm linker flags
# ─────────────────────────────────────────────────────────────────────────────
[]
# Used by build.rs to locate ROCm libraries
# (add `cc` if you need to compile any .hip or .cl kernels)
# ─────────────────────────────────────────────────────────────────────────────
# Dev / test dependencies
# ─────────────────────────────────────────────────────────────────────────────
[]
= { = "1", = ["full"] }
= "0.11"
# ─────────────────────────────────────────────────────────────────────────────
# Examples
# ─────────────────────────────────────────────────────────────────────────────
[[]]
= "async_tasks"
= ["async"]
[[]]
= "async_parallel"
= ["async"]
[[]]
= "async_run_variants"
= ["async"]
[[]]
= "parallel_run_n"
[[]]
= "advanced_features"
[[]]
= "preemptive_cancellation"
[[]]
= "dynamic_priority"
[[]]
= "hardware_topology"
# GPU examples — work with any available backend (fallback to stub)
[[]]
= "gpu_tasks"
[[]]
= "gpu_pipeline"
[[]]
= "gpu_async_streams"
# No required-features: stub backend always available for CI