Add `// Copyright Sunbeam Studios 2026` and `// SPDX-License-Identifier: Apache-2.0` headers to all source files missing them. Update LICENSE copyright year, Dockerfile copyright header, and .dockerignore for new project structure (lean4/, docs/, training artifacts). Signed-off-by: Sienna Meridian Satterwhite <sienna@sunbeam.pt>
44 lines
1.4 KiB
Rust
44 lines
1.4 KiB
Rust
// Copyright Sunbeam Studios 2026
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
|
use sunbeam_proxy::ensemble::ddos::ddos_ensemble_predict;
|
|
use sunbeam_proxy::ensemble::gen::ddos_weights;
|
|
use sunbeam_proxy::ensemble::mlp::mlp_predict_32;
|
|
use sunbeam_proxy::ensemble::tree::tree_predict;
|
|
|
|
fn bench_ensemble_ddos_full(c: &mut Criterion) {
|
|
let raw: [f32; 14] = [5.0, 10.0, 2.0, 0.1, 50.0, 0.5, 3.0, 0.3, 500.0, 2.0, 0.8, 0.7, 0.9, 0.1];
|
|
c.bench_function("ensemble::ddos full predict", |b| {
|
|
b.iter(|| ddos_ensemble_predict(black_box(&raw)))
|
|
});
|
|
}
|
|
|
|
fn bench_ensemble_ddos_tree_only(c: &mut Criterion) {
|
|
let input: [f32; 14] = [0.5; 14];
|
|
c.bench_function("ensemble::ddos tree_only", |b| {
|
|
b.iter(|| tree_predict(black_box(&ddos_weights::TREE_NODES), black_box(&input)))
|
|
});
|
|
}
|
|
|
|
fn bench_ensemble_ddos_mlp_only(c: &mut Criterion) {
|
|
let input: [f32; 14] = [0.5; 14];
|
|
c.bench_function("ensemble::ddos mlp_only", |b| {
|
|
b.iter(|| mlp_predict_32::<14>(
|
|
black_box(&ddos_weights::W1),
|
|
black_box(&ddos_weights::B1),
|
|
black_box(&ddos_weights::W2),
|
|
black_box(ddos_weights::B2),
|
|
black_box(&input),
|
|
))
|
|
});
|
|
}
|
|
|
|
criterion_group!(
|
|
benches,
|
|
bench_ensemble_ddos_full,
|
|
bench_ensemble_ddos_tree_only,
|
|
bench_ensemble_ddos_mlp_only,
|
|
);
|
|
criterion_main!(benches);
|