2026-03-24 11:09:48 +05:30
{
"schema_version" : 1 ,
"command" : "python benchmarks/bench_derivatives_compare.py --sizes 1000 10000 --accuracy-size 512 --json benchmarks/artifacts/latest/benchmark_derivatives_compare.json" ,
"n_warmup" : 1 ,
"n_runs" : 7 ,
"accuracy_size" : 512 ,
"sizes" : [
1000 ,
10000
],
"metadata" : {
"suite" : "benchmark_derivatives_compare" ,
"runtime" : {
"generated_at_utc" : "2026-03-24T05:39:25.642936+00:00" ,
"python_version" : "3.13.5" ,
"python_implementation" : "CPython" ,
"python_executable" : "/Users/pratikbhadane/Work/Projects/ferro-ta/.venv/bin/python3" ,
"platform" : "macOS-26.3.1-arm64-arm-64bit-Mach-O" ,
"system" : "Darwin" ,
"release" : "25.3.0" ,
"machine" : "arm64" ,
"processor" : "arm" ,
"cpu_model" : "Apple M3 Max" ,
"cpu_count_logical" : 14 ,
"total_memory_bytes" : 38654705664
},
"git" : {
"commit" : "0382c4e3024c96809ffd89dd76d820efcd56479d" ,
"dirty" : true ,
"branch" : "main"
},
"build" : {
"rustc" : "rustc 1.91.1 (ed61e7d7e 2025-11-07) (Homebrew)\nbinary: rustc\ncommit-hash: ed61e7d7e242494fb7057f2657300d9e77bb4fcb\ncommit-date: 2025-11-07\nhost: aarch64-apple-darwin\nrelease: 1.91.1\nLLVM version: 21.1.5" ,
"cargo" : "cargo 1.91.1 (Homebrew)" ,
"cargo_release_profile" : {
"lto" : true ,
"codegen-units" : 1
},
"rustflags" : null ,
"cargo_build_rustflags" : null ,
"maturin_flags" : null
},
"packages" : {
"numpy" : "2.2.6" ,
"ferro-ta" : "1.0.3" ,
"py_vollib" : null
},
"dataset" : {
"generator" : "synthetic_option_chain" ,
"speed_sizes" : [
1000 ,
10000
],
"accuracy_size" : 512 ,
"dtype" : "float64" ,
"array_layout" : "C-contiguous" ,
"seed" : 42 ,
"ranges" : {
"spot" : [
80.0 ,
120.0
],
"strike" : [
70.0 ,
130.0
],
"rate" : [
0.0 ,
0.07
],
"carry" : [
0.0 ,
0.03
],
"time_to_expiry_years" : [
0.019178082191780823 ,
2.0
],
"volatility" : [
0.08 ,
0.65
]
}
},
"methodology" : {
"warmup_runs" : 1 ,
"measured_runs" : 7 ,
"reported_metric" : "median_ms" ,
"speed_metric" : "contracts_per_second" ,
"accuracy_reference" : "Scalar analytical Black-Scholes-Merton and Black-76 formulas using math.erf; IV accuracy is measured as repriced error from the recovered volatility because direct volatility differences can be unstable on low-vega contracts." ,
"input_layout_notes" : "Benchmarks use contiguous float64 arrays. If your workload passes non-contiguous arrays or mixed dtypes, benchmark that path separately." ,
"allocation_notes" : "python_peak_allocation_bytes is a tracemalloc snapshot of Python-tracked allocations only; it does not measure native RSS." ,
"provider_notes" : "reference_python_loop and py_vollib are scalar baselines and are size-capped in the speed table to keep runtime reasonable."
},
"providers" : [
{
"name" : "ferro_ta" ,
"kind" : "project" ,
"note" : "Rust-backed vectorized implementation." ,
"max_speed_size" : null ,
"supported_cases" : [
"bsm_call_price" ,
"bsm_call_iv" ,
"bsm_call_greeks" ,
"black76_call_price"
]
},
{
"name" : "reference_numpy" ,
"kind" : "reference" ,
"note" : "Pure NumPy analytical formulas with vectorized IV bisection." ,
"max_speed_size" : null ,
"supported_cases" : [
"bsm_call_price" ,
"bsm_call_iv" ,
"bsm_call_greeks" ,
"black76_call_price"
]
},
{
"name" : "reference_python_loop" ,
"kind" : "reference" ,
"note" : "Scalar math-loop analytical baseline; useful for accuracy sanity checks." ,
"max_speed_size" : 1000 ,
"supported_cases" : [
"bsm_call_price" ,
"bsm_call_iv" ,
"bsm_call_greeks" ,
"black76_call_price"
]
}
]
},
"accuracy" : {
"summary" : [
{
"case" : "bsm_call_price" ,
"best_provider" : "reference_python_loop" ,
"best_max_abs_error" : 0.0 ,
"worst_provider" : "ferro_ta" ,
"worst_max_abs_error" : 1.6274806e-05
},
{
"case" : "bsm_call_iv" ,
"best_provider" : "reference_python_loop" ,
"best_max_abs_error" : 1e-10 ,
"worst_provider" : "reference_numpy" ,
"worst_max_abs_error" : 1.6276264e-05
},
{
"case" : "bsm_call_greeks" ,
"best_provider" : "reference_python_loop" ,
"best_max_abs_error" : 0.0 ,
"worst_provider" : "ferro_ta" ,
"worst_max_abs_error" : 1.7335858e-05
},
{
"case" : "black76_call_price" ,
"best_provider" : "reference_python_loop" ,
"best_max_abs_error" : 0.0 ,
"worst_provider" : "ferro_ta" ,
"worst_max_abs_error" : 1.6274806e-05
}
],
"results" : [
{
"case" : "bsm_call_price" ,
"label" : "BSM Call Price" ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"sample_size" : 512 ,
"accuracy_target" : "expected_output" ,
"output_shape" : [
512
],
"max_abs_error" : 1.6274806e-05 ,
"mean_abs_error" : 5.249347e-06 ,
"rmse" : 6.48942e-06 ,
"max_rel_error" : 0.009546518154
},
{
"case" : "bsm_call_price" ,
"label" : "BSM Call Price" ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"sample_size" : 512 ,
"accuracy_target" : "expected_output" ,
"output_shape" : [
512
],
"max_abs_error" : 1.6274806e-05 ,
"mean_abs_error" : 5.249347e-06 ,
"rmse" : 6.48942e-06 ,
"max_rel_error" : 0.009546518154
},
{
"case" : "bsm_call_price" ,
"label" : "BSM Call Price" ,
"provider" : "reference_python_loop" ,
"provider_kind" : "reference" ,
"sample_size" : 512 ,
"accuracy_target" : "expected_output" ,
"output_shape" : [
512
],
"max_abs_error" : 0.0 ,
"mean_abs_error" : 0.0 ,
"rmse" : 0.0 ,
"max_rel_error" : 0.0
},
{
"case" : "bsm_call_iv" ,
"label" : "BSM Call IV Recovery" ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"sample_size" : 512 ,
"accuracy_target" : "reconstructed_price" ,
"output_shape" : [
512
],
"max_abs_error" : 1.6275836e-05 ,
"mean_abs_error" : 5.249474e-06 ,
"rmse" : 6.489527e-06 ,
"max_rel_error" : 0.475843909884
},
{
"case" : "bsm_call_iv" ,
"label" : "BSM Call IV Recovery" ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"sample_size" : 512 ,
"accuracy_target" : "reconstructed_price" ,
"output_shape" : [
512
],
"max_abs_error" : 1.6276264e-05 ,
"mean_abs_error" : 5.249487e-06 ,
"rmse" : 6.489634e-06 ,
"max_rel_error" : 0.009628987742
},
{
"case" : "bsm_call_iv" ,
"label" : "BSM Call IV Recovery" ,
"provider" : "reference_python_loop" ,
"provider_kind" : "reference" ,
"sample_size" : 512 ,
"accuracy_target" : "reconstructed_price" ,
"output_shape" : [
512
],
"max_abs_error" : 1e-10 ,
"mean_abs_error" : 4.5e-11 ,
"rmse" : 5.3e-11 ,
"max_rel_error" : 0.00547208151
},
{
"case" : "bsm_call_greeks" ,
"label" : "BSM Call Greeks" ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"sample_size" : 512 ,
"accuracy_target" : "expected_output" ,
"output_shape" : [
512 ,
5
],
"max_abs_error" : 1.7335858e-05 ,
"mean_abs_error" : 8.64081e-07 ,
"rmse" : 2.444399e-06 ,
"max_rel_error" : 0.002644156321 ,
"component_names" : [
"delta" ,
"gamma" ,
"vega" ,
"theta" ,
"rho"
]
},
{
"case" : "bsm_call_greeks" ,
"label" : "BSM Call Greeks" ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"sample_size" : 512 ,
"accuracy_target" : "expected_output" ,
"output_shape" : [
512 ,
5
],
"max_abs_error" : 1.7335858e-05 ,
"mean_abs_error" : 8.64081e-07 ,
"rmse" : 2.444399e-06 ,
"max_rel_error" : 0.002644156321 ,
"component_names" : [
"delta" ,
"gamma" ,
"vega" ,
"theta" ,
"rho"
]
},
{
"case" : "bsm_call_greeks" ,
"label" : "BSM Call Greeks" ,
"provider" : "reference_python_loop" ,
"provider_kind" : "reference" ,
"sample_size" : 512 ,
"accuracy_target" : "expected_output" ,
"output_shape" : [
512 ,
5
],
"max_abs_error" : 0.0 ,
"mean_abs_error" : 0.0 ,
"rmse" : 0.0 ,
"max_rel_error" : 0.0 ,
"component_names" : [
"delta" ,
"gamma" ,
"vega" ,
"theta" ,
"rho"
]
},
{
"case" : "black76_call_price" ,
"label" : "Black-76 Call Price" ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"sample_size" : 512 ,
"accuracy_target" : "expected_output" ,
"output_shape" : [
512
],
"max_abs_error" : 1.6274806e-05 ,
"mean_abs_error" : 5.249347e-06 ,
"rmse" : 6.48942e-06 ,
"max_rel_error" : 0.009546518154
},
{
"case" : "black76_call_price" ,
"label" : "Black-76 Call Price" ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"sample_size" : 512 ,
"accuracy_target" : "expected_output" ,
"output_shape" : [
512
],
"max_abs_error" : 1.6274806e-05 ,
"mean_abs_error" : 5.249347e-06 ,
"rmse" : 6.48942e-06 ,
"max_rel_error" : 0.009546518154
},
{
"case" : "black76_call_price" ,
"label" : "Black-76 Call Price" ,
"provider" : "reference_python_loop" ,
"provider_kind" : "reference" ,
"sample_size" : 512 ,
"accuracy_target" : "expected_output" ,
"output_shape" : [
512
],
"max_abs_error" : 0.0 ,
"mean_abs_error" : 0.0 ,
"rmse" : 0.0 ,
"max_rel_error" : 0.0
}
]
},
"speed" : {
"summary" : [
{
"case" : "bsm_call_price" ,
"size" : 1000 ,
"fastest_provider" : "ferro_ta" ,
"fastest_median_ms" : 0.0336 ,
"ranking" : [
{
"provider" : "ferro_ta" ,
"median_ms" : 0.0336 ,
"contracts_per_s" : 29761904.76
},
{
"provider" : "reference_numpy" ,
"median_ms" : 0.0456 ,
"contracts_per_s" : 21929824.56
},
{
"provider" : "reference_python_loop" ,
"median_ms" : 0.8157 ,
"contracts_per_s" : 1225940.91
}
]
},
{
"case" : "bsm_call_price" ,
"size" : 10000 ,
"fastest_provider" : "ferro_ta" ,
"fastest_median_ms" : 0.2752 ,
"ranking" : [
{
"provider" : "ferro_ta" ,
"median_ms" : 0.2752 ,
"contracts_per_s" : 36337209.3
},
{
"provider" : "reference_numpy" ,
"median_ms" : 0.3109 ,
"contracts_per_s" : 32164683.18
}
]
},
{
"case" : "bsm_call_iv" ,
"size" : 1000 ,
"fastest_provider" : "ferro_ta" ,
"fastest_median_ms" : 0.4121 ,
"ranking" : [
{
"provider" : "ferro_ta" ,
"median_ms" : 0.4121 ,
"contracts_per_s" : 2426595.49
},
{
"provider" : "reference_numpy" ,
"median_ms" : 1.8036 ,
"contracts_per_s" : 554446.66
},
{
"provider" : "reference_python_loop" ,
"median_ms" : 13.4274 ,
"contracts_per_s" : 74474.58
}
]
},
{
"case" : "bsm_call_iv" ,
"size" : 10000 ,
"fastest_provider" : "ferro_ta" ,
"fastest_median_ms" : 4.0739 ,
"ranking" : [
{
"provider" : "ferro_ta" ,
"median_ms" : 4.0739 ,
"contracts_per_s" : 2454650.34
},
{
"provider" : "reference_numpy" ,
"median_ms" : 11.7949 ,
"contracts_per_s" : 847824.06
}
]
},
{
"case" : "bsm_call_greeks" ,
"size" : 1000 ,
"fastest_provider" : "ferro_ta" ,
"fastest_median_ms" : 0.0497 ,
"ranking" : [
{
"provider" : "ferro_ta" ,
"median_ms" : 0.0497 ,
"contracts_per_s" : 20120724.35
},
{
"provider" : "reference_numpy" ,
"median_ms" : 0.0871 ,
"contracts_per_s" : 11481056.26
},
{
"provider" : "reference_python_loop" ,
"median_ms" : 1.189 ,
"contracts_per_s" : 841042.89
}
]
},
{
"case" : "bsm_call_greeks" ,
"size" : 10000 ,
"fastest_provider" : "reference_numpy" ,
"fastest_median_ms" : 0.572 ,
"ranking" : [
{
"provider" : "reference_numpy" ,
"median_ms" : 0.572 ,
"contracts_per_s" : 17482517.48
},
{
"provider" : "ferro_ta" ,
"median_ms" : 0.7486 ,
"contracts_per_s" : 13358268.77
}
]
},
{
"case" : "black76_call_price" ,
"size" : 1000 ,
"fastest_provider" : "ferro_ta" ,
"fastest_median_ms" : 0.0254 ,
"ranking" : [
{
"provider" : "ferro_ta" ,
"median_ms" : 0.0254 ,
"contracts_per_s" : 39370078.74
},
{
"provider" : "reference_numpy" ,
"median_ms" : 0.0384 ,
"contracts_per_s" : 26041666.67
},
{
"provider" : "reference_python_loop" ,
"median_ms" : 0.7358 ,
"contracts_per_s" : 1359064.96
}
]
},
{
"case" : "black76_call_price" ,
"size" : 10000 ,
"fastest_provider" : "ferro_ta" ,
"fastest_median_ms" : 0.2184 ,
"ranking" : [
{
"provider" : "ferro_ta" ,
"median_ms" : 0.2184 ,
"contracts_per_s" : 45787545.79
},
{
"provider" : "reference_numpy" ,
"median_ms" : 0.2823 ,
"contracts_per_s" : 35423308.54
}
]
}
],
"results" : [
{
"case" : "bsm_call_price" ,
"label" : "BSM Call Price" ,
"size" : 1000 ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"median_ms" : 0.0336 ,
"contracts_per_s" : 29761904.76 ,
"runs_ms" : [
0.0337 ,
0.0404 ,
0.0336 ,
0.033 ,
0.0332 ,
0.0329 ,
0.0361
],
"stats" : {
"median_ms" : 0.0336 ,
"mean_ms" : 0.0347 ,
"min_ms" : 0.0329 ,
"max_ms" : 0.0404 ,
"stddev_ms" : 0.0027 ,
"cv_pct" : 7.901
},
"python_peak_allocation_bytes" : 17861 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_price" ,
"label" : "BSM Call Price" ,
"size" : 1000 ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"median_ms" : 0.0456 ,
"contracts_per_s" : 21929824.56 ,
"runs_ms" : [
0.0468 ,
0.0456 ,
0.0483 ,
0.045 ,
0.0548 ,
0.0452 ,
0.0449
],
"stats" : {
"median_ms" : 0.0456 ,
"mean_ms" : 0.0472 ,
"min_ms" : 0.0449 ,
"max_ms" : 0.0548 ,
"stddev_ms" : 0.0036 ,
"cv_pct" : 7.526
},
"python_peak_allocation_bytes" : 115672 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_price" ,
"label" : "BSM Call Price" ,
"size" : 1000 ,
"provider" : "reference_python_loop" ,
"provider_kind" : "reference" ,
"median_ms" : 0.8157 ,
"contracts_per_s" : 1225940.91 ,
"runs_ms" : [
0.8154 ,
0.8078 ,
0.8184 ,
0.8265 ,
0.8157 ,
0.8155 ,
0.8267
],
"stats" : {
"median_ms" : 0.8157 ,
"mean_ms" : 0.818 ,
"min_ms" : 0.8078 ,
"max_ms" : 0.8267 ,
"stddev_ms" : 0.0067 ,
"cv_pct" : 0.82
},
"python_peak_allocation_bytes" : 39464 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_price" ,
"label" : "BSM Call Price" ,
"size" : 10000 ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"median_ms" : 0.2752 ,
"contracts_per_s" : 36337209.3 ,
"runs_ms" : [
0.2632 ,
0.2812 ,
0.2666 ,
0.2666 ,
0.281 ,
0.2752 ,
0.276
],
"stats" : {
"median_ms" : 0.2752 ,
"mean_ms" : 0.2728 ,
"min_ms" : 0.2632 ,
"max_ms" : 0.2812 ,
"stddev_ms" : 0.0073 ,
"cv_pct" : 2.684
},
"python_peak_allocation_bytes" : 17861 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_price" ,
"label" : "BSM Call Price" ,
"size" : 10000 ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"median_ms" : 0.3109 ,
"contracts_per_s" : 32164683.18 ,
"runs_ms" : [
0.304 ,
0.315 ,
0.3261 ,
0.309 ,
0.3218 ,
0.3109 ,
0.3084
],
"stats" : {
"median_ms" : 0.3109 ,
"mean_ms" : 0.3136 ,
"min_ms" : 0.304 ,
"max_ms" : 0.3261 ,
"stddev_ms" : 0.0079 ,
"cv_pct" : 2.515
},
"python_peak_allocation_bytes" : 1132672 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_iv" ,
"label" : "BSM Call IV Recovery" ,
"size" : 1000 ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"median_ms" : 0.4121 ,
"contracts_per_s" : 2426595.49 ,
"runs_ms" : [
0.4309 ,
0.4121 ,
0.4068 ,
0.418 ,
0.4082 ,
0.4285 ,
0.4093
],
"stats" : {
"median_ms" : 0.4121 ,
"mean_ms" : 0.4163 ,
"min_ms" : 0.4068 ,
"max_ms" : 0.4309 ,
"stddev_ms" : 0.0099 ,
"cv_pct" : 2.378
},
"python_peak_allocation_bytes" : 20709 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_iv" ,
"label" : "BSM Call IV Recovery" ,
"size" : 1000 ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"median_ms" : 1.8036 ,
"contracts_per_s" : 554446.66 ,
"runs_ms" : [
1.8522 ,
1.8036 ,
1.8552 ,
1.7976 ,
1.7981 ,
1.8119 ,
1.7963
],
"stats" : {
"median_ms" : 1.8036 ,
"mean_ms" : 1.8164 ,
"min_ms" : 1.7963 ,
"max_ms" : 1.8552 ,
"stddev_ms" : 0.026 ,
"cv_pct" : 1.434
},
"python_peak_allocation_bytes" : 149448 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_iv" ,
"label" : "BSM Call IV Recovery" ,
"size" : 1000 ,
"provider" : "reference_python_loop" ,
"provider_kind" : "reference" ,
"median_ms" : 13.4274 ,
"contracts_per_s" : 74474.58 ,
"runs_ms" : [
13.4787 ,
13.4274 ,
13.4138 ,
13.4148 ,
13.4643 ,
13.6664 ,
13.3763
],
"stats" : {
"median_ms" : 13.4274 ,
"mean_ms" : 13.4631 ,
"min_ms" : 13.3763 ,
"max_ms" : 13.6664 ,
"stddev_ms" : 0.0959 ,
"cv_pct" : 0.712
},
"python_peak_allocation_bytes" : 39584 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_iv" ,
"label" : "BSM Call IV Recovery" ,
"size" : 10000 ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"median_ms" : 4.0739 ,
"contracts_per_s" : 2454650.34 ,
"runs_ms" : [
4.0739 ,
4.0792 ,
3.9101 ,
4.0077 ,
4.2279 ,
4.076 ,
3.9563
],
"stats" : {
"median_ms" : 4.0739 ,
"mean_ms" : 4.0473 ,
"min_ms" : 3.9101 ,
"max_ms" : 4.2279 ,
"stddev_ms" : 0.1032 ,
"cv_pct" : 2.549
},
"python_peak_allocation_bytes" : 82830 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_iv" ,
"label" : "BSM Call IV Recovery" ,
"size" : 10000 ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"median_ms" : 11.7949 ,
"contracts_per_s" : 847824.06 ,
"runs_ms" : [
11.713 ,
11.7014 ,
11.8743 ,
11.7949 ,
11.4815 ,
11.8635 ,
11.8188
],
"stats" : {
"median_ms" : 11.7949 ,
"mean_ms" : 11.7496 ,
"min_ms" : 11.4815 ,
"max_ms" : 11.8743 ,
"stddev_ms" : 0.1359 ,
"cv_pct" : 1.157
},
"python_peak_allocation_bytes" : 1463448 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_greeks" ,
"label" : "BSM Call Greeks" ,
"size" : 1000 ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"median_ms" : 0.0497 ,
"contracts_per_s" : 20120724.35 ,
"runs_ms" : [
0.0558 ,
0.0497 ,
0.0486 ,
0.0503 ,
0.051 ,
0.0494 ,
0.0486
],
"stats" : {
"median_ms" : 0.0497 ,
"mean_ms" : 0.0505 ,
"min_ms" : 0.0486 ,
"max_ms" : 0.0558 ,
"stddev_ms" : 0.0025 ,
"cv_pct" : 4.902
},
"python_peak_allocation_bytes" : 41928 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_greeks" ,
"label" : "BSM Call Greeks" ,
"size" : 1000 ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"median_ms" : 0.0871 ,
"contracts_per_s" : 11481056.26 ,
"runs_ms" : [
0.0883 ,
0.0871 ,
0.0876 ,
0.0871 ,
0.0868 ,
0.0864 ,
0.1533
],
"stats" : {
"median_ms" : 0.0871 ,
"mean_ms" : 0.0967 ,
"min_ms" : 0.0864 ,
"max_ms" : 0.1533 ,
"stddev_ms" : 0.025 ,
"cv_pct" : 25.847
},
"python_peak_allocation_bytes" : 138128 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_greeks" ,
"label" : "BSM Call Greeks" ,
"size" : 1000 ,
"provider" : "reference_python_loop" ,
"provider_kind" : "reference" ,
"median_ms" : 1.189 ,
"contracts_per_s" : 841042.89 ,
"runs_ms" : [
1.243 ,
1.3353 ,
1.189 ,
1.1827 ,
1.1821 ,
1.1827 ,
1.2165
],
"stats" : {
"median_ms" : 1.189 ,
"mean_ms" : 1.2188 ,
"min_ms" : 1.1821 ,
"max_ms" : 1.3353 ,
"stddev_ms" : 0.0563 ,
"cv_pct" : 4.619
},
"python_peak_allocation_bytes" : 199408 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_greeks" ,
"label" : "BSM Call Greeks" ,
"size" : 10000 ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"median_ms" : 0.7486 ,
"contracts_per_s" : 13358268.77 ,
"runs_ms" : [
0.7306 ,
0.7328 ,
0.7688 ,
0.732 ,
0.7792 ,
0.7486 ,
0.8081
],
"stats" : {
"median_ms" : 0.7486 ,
"mean_ms" : 0.7572 ,
"min_ms" : 0.7306 ,
"max_ms" : 0.8081 ,
"stddev_ms" : 0.0295 ,
"cv_pct" : 3.897
},
"python_peak_allocation_bytes" : 401848 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "bsm_call_greeks" ,
"label" : "BSM Call Greeks" ,
"size" : 10000 ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"median_ms" : 0.572 ,
"contracts_per_s" : 17482517.48 ,
"runs_ms" : [
0.6104 ,
0.5705 ,
0.5715 ,
0.5817 ,
0.572 ,
0.5747 ,
0.5708
],
"stats" : {
"median_ms" : 0.572 ,
"mean_ms" : 0.5788 ,
"min_ms" : 0.5705 ,
"max_ms" : 0.6104 ,
"stddev_ms" : 0.0145 ,
"cv_pct" : 2.499
},
"python_peak_allocation_bytes" : 1362128 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "black76_call_price" ,
"label" : "Black-76 Call Price" ,
"size" : 1000 ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"median_ms" : 0.0254 ,
"contracts_per_s" : 39370078.74 ,
"runs_ms" : [
0.0286 ,
0.0263 ,
0.0258 ,
0.0254 ,
0.0253 ,
0.0253 ,
0.0254
],
"stats" : {
"median_ms" : 0.0254 ,
"mean_ms" : 0.026 ,
"min_ms" : 0.0253 ,
"max_ms" : 0.0286 ,
"stddev_ms" : 0.0012 ,
"cv_pct" : 4.639
},
"python_peak_allocation_bytes" : 14717 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "black76_call_price" ,
"label" : "Black-76 Call Price" ,
"size" : 1000 ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"median_ms" : 0.0384 ,
"contracts_per_s" : 26041666.67 ,
"runs_ms" : [
0.0395 ,
0.0385 ,
0.0387 ,
0.0383 ,
0.0384 ,
0.0382 ,
0.0383
],
"stats" : {
"median_ms" : 0.0384 ,
"mean_ms" : 0.0385 ,
"min_ms" : 0.0382 ,
"max_ms" : 0.0395 ,
"stddev_ms" : 0.0005 ,
"cv_pct" : 1.22
},
"python_peak_allocation_bytes" : 99448 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "black76_call_price" ,
"label" : "Black-76 Call Price" ,
"size" : 1000 ,
"provider" : "reference_python_loop" ,
"provider_kind" : "reference" ,
"median_ms" : 0.7358 ,
"contracts_per_s" : 1359064.96 ,
"runs_ms" : [
0.7271 ,
0.7251 ,
0.845 ,
0.7809 ,
0.7345 ,
0.7358 ,
0.7418
],
"stats" : {
"median_ms" : 0.7358 ,
"mean_ms" : 0.7558 ,
"min_ms" : 0.7251 ,
"max_ms" : 0.845 ,
"stddev_ms" : 0.0436 ,
"cv_pct" : 5.769
},
"python_peak_allocation_bytes" : 39416 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "black76_call_price" ,
"label" : "Black-76 Call Price" ,
"size" : 10000 ,
"provider" : "ferro_ta" ,
"provider_kind" : "project" ,
"median_ms" : 0.2184 ,
"contracts_per_s" : 45787545.79 ,
"runs_ms" : [
0.2286 ,
0.2183 ,
0.219 ,
0.2184 ,
0.2223 ,
0.218 ,
0.2176
],
"stats" : {
"median_ms" : 0.2184 ,
"mean_ms" : 0.2203 ,
"min_ms" : 0.2176 ,
"max_ms" : 0.2286 ,
"stddev_ms" : 0.004 ,
"cv_pct" : 1.8
},
"python_peak_allocation_bytes" : 14717 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
},
{
"case" : "black76_call_price" ,
"label" : "Black-76 Call Price" ,
"size" : 10000 ,
"provider" : "reference_numpy" ,
"provider_kind" : "reference" ,
"median_ms" : 0.2823 ,
"contracts_per_s" : 35423308.54 ,
"runs_ms" : [
0.2823 ,
0.276 ,
0.275 ,
0.3064 ,
0.3196 ,
0.2835 ,
0.2734
],
"stats" : {
"median_ms" : 0.2823 ,
"mean_ms" : 0.288 ,
"min_ms" : 0.2734 ,
"max_ms" : 0.3196 ,
"stddev_ms" : 0.0179 ,
"cv_pct" : 6.201
},
"python_peak_allocation_bytes" : 972448 ,
"input_layout" : {
"dtype" : "float64" ,
"contiguous" : true
}
}
]
}
2026-03-24 14:52:20 +05:30
}