-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCargo.toml
106 lines (87 loc) · 2.86 KB
/
Cargo.toml
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
[package]
name = "mwa_hyperbeam"
version = "0.10.0"
authors = [
"Christopher H. Jordan <christopherjordan87@gmail.com>",
"Jack L. B. Line <jack.line@curtin.edu.au>",
"Marcin Sokolowski <marcin.sokolowski@curtin.edu.au>",
"Dev Null <dev.null@curtin.edu.au",
"Sammy McSweeney <sammy.mcsweeney@gmail.com>",
]
edition = "2021"
rust-version = "1.80"
license = "MPL-2.0"
readme = "README.md"
description = "Primary beam code for the Murchison Widefield Array (MWA) radio telescope."
repository = "https://github.com/MWATelescope/mwa_hyperbeam"
homepage = "https://github.com/MWATelescope/mwa_hyperbeam"
exclude = [".github/*", "fee_pols.pdf"]
[package.metadata.docs.rs]
features = ["hdf5-static"]
targets = ["x86_64-unknown-linux-gnu"]
# Make a rust library, as well as static and C-compatible dynamic libraries
# available as "libmwa_hyperbeam.a" and "libmwa_hyperbeam.so".
[lib]
crate-type = ["rlib", "staticlib", "cdylib"]
[features]
default = []
hdf5-static = ["hdf5-metno-sys"]
cuda-static = []
all-static = ["hdf5-static", "cuda-static"]
python = ["pyo3", "numpy"]
# Provide beam functionality with CUDA, double precision.
cuda = ["cuda-runtime-sys", "cc"]
# Provide beam functionality with HIP, double precision.
hip = ["hip-sys", "cc"]
# Opt-out of GPU double precision, use only single precision (faster on desktop
# GPUs).
gpu-single = []
[profile.release]
lto = "thin"
codegen-units = 1 # Set this to 1 in Cargo.toml to allow for maximum size reduction optimizations
[dependencies]
cfg-if = "1.0.0"
hdf5-metno = "0.9.2"
marlu = { version = "0.15.0", default-features = false } # don't forget dev-dependencies
ndarray = "0.16.0"
num-complex = "0.4.1"
panic-message = "0.3.0"
parking_lot = "0.12.0"
rayon = "1.5.0"
thiserror = "1.0.2"
hdf5-metno-sys = { version = "0.9.1", features = [
"static",
"threadsafe",
], optional = true }
cuda-runtime-sys = { version = "0.3.0-alpha.1", optional = true }
hip-sys = { version = "0.1.0", optional = true }
pyo3 = { version = "0.22.0", features = ["extension-module"], optional = true }
numpy = { version = "0.22.1", optional = true }
[dev-dependencies]
approx = { version = "0.5.0", features = ["num-complex"] }
criterion = "0.5.1"
marlu = { version = "0.15.0", default-features = false, features = ["approx"] }
serial_test = "2.0.0"
ndarray = { version = "0.16.0", features = ["approx"] }
[build-dependencies]
cbindgen = { version = "0.25.0", default-features = false }
cfg-if = "1.0.0"
cc = { version = "1.0.0", features = ["parallel"], optional = true }
hip-sys = { version = "0.1.0", optional = true }
[[bench]]
name = "bench"
harness = false
[[example]]
name = "fee_cuda"
required-features = ["cuda"]
[[example]]
name = "fee_hip"
required-features = ["hip"]
[[example]]
name = "analytic_cuda"
required-features = ["cuda"]
[[example]]
name = "analytic_hip"
required-features = ["hip"]
[patch.crates-io]
# marlu = { path = "../Marlu" }