Skip to content

Performance-Gated Tests

SC-NeuroCore keeps timing sanity checks out of the default pytest path. Tests that assert a wall-clock threshold are marked with SC_NEUROCORE_PERF=1 so regular local and pull-request runs stay deterministic and cheap. The scheduled Performance Benchmarks workflow enables the same variable and runs the current perf-gated selector nightly.

Run the same selector locally when changing a perf-gated file:

Bash
SC_NEUROCORE_PERF=1 PYTHONPATH=src:. python -m pytest \
  tests/test_export/test_onnx_exporter.py \
  tests/test_learning/test_lifelong.py \
  tests/test_learning/test_federated.py \
  tests/test_transformers/test_block.py \
  tests/test_layers/test_recurrent.py \
  tests/test_layers/test_vectorized_layer.py \
  tests/test_layers/test_sc_conv_layer.py \
  tests/test_layers/test_sc_dense_layer.py \
  tests/test_layers/test_memristive.py \
  tests/test_layers/test_sc_learning_layer.py \
  tests/test_layers/test_fusion.py \
  tests/test_hdc/test_base.py \
  tests/test_accel/test_vector_ops.py \
  tests/test_solvers/test_ising.py \
  tests/test_optics/test_photonic_layer.py \
  tests/test_quantum/test_hybrid.py \
  tests/test_interfaces/test_dvs_input.py \
  tests/test_sources/test_bitstream_current_source.py \
  tests/test_hdl_gen/test_verilog_generator.py \
  tests/test_hdl_gen/test_spice_generator.py \
  tests/test_bio/test_dna_storage.py \
  tests/test_bio/test_grn.py \
  tests/test_graphs/test_gnn.py

Current Selector

Surface Test file
ONNX export tests/test_export/test_onnx_exporter.py
Lifelong learning tests/test_learning/test_lifelong.py
Federated learning tests/test_learning/test_federated.py
Transformer block tests/test_transformers/test_block.py
Recurrent layer tests/test_layers/test_recurrent.py
Vectorized layer tests/test_layers/test_vectorized_layer.py
Convolution layer tests/test_layers/test_sc_conv_layer.py
Dense layer tests/test_layers/test_sc_dense_layer.py
Memristive layer tests/test_layers/test_memristive.py
Learning layer tests/test_layers/test_sc_learning_layer.py
Fusion layer tests/test_layers/test_fusion.py
HDC encoder tests/test_hdc/test_base.py
Vector operations tests/test_accel/test_vector_ops.py
Ising solver tests/test_solvers/test_ising.py
Photonic layer tests/test_optics/test_photonic_layer.py
Quantum hybrid layer tests/test_quantum/test_hybrid.py
DVS input layer tests/test_interfaces/test_dvs_input.py
Bitstream current source tests/test_sources/test_bitstream_current_source.py
Verilog generator tests/test_hdl_gen/test_verilog_generator.py
SPICE generator tests/test_hdl_gen/test_spice_generator.py
DNA storage tests/test_bio/test_dna_storage.py
Gene-regulatory network tests/test_bio/test_grn.py
Graph neural layer tests/test_graphs/test_gnn.py

The selector is intentionally pytest-based. It is regression evidence for small timing thresholds inside existing behaviour tests, not a replacement for isolated benchmark artefacts under benchmarks/results/. Public benchmark claims still require the benchmark-evidence rules described in Benchmarks.