How sandialabs/cross-sim works
CrossSim is a Python accuracy simulator and co-design tool for analog in-memory computing, with a NumPy-like core API, signal-processing algorithms, and a neural-network inference interface. In the principal workflow, an engineer configures hardware parameters, converts a Keras or PyTorch model to analog layers, and runs inference through CrossSim cores to assess algorithm accuracy under device and circuit effects. Application examples also cover ADC/DAC calibration and profiling. The graph reflects documented capabilities and indexed references; unsampled implementation details are represented only where the tree or README supports them.
Main entry points: dnn Inference Examples · analog_core.py Analog Core · interface Inference Interface · dnn_inference_params.py DNN Parameters
Components 20
Applications
- Inference Examples
applications/dnn - Inference Interface
applications/dnn/inference/interface - ADC/DAC Calibration
applications/dnn/inference/adc - Data Preparation
applications/dnn/inference/helpers/imagenet_preprocess - DNN Parameters
applications/dnn/dnn_inference_params.py - Inference Evaluation
applications/dnn/inference/run_inference.py
DNN Interfaces
- PyTorch Conversion
simulator/algorithms/dnn/torch/convert.py - PyTorch Analog Layers
simulator/algorithms/dnn/torch/conv.py - Keras Conversion
simulator/algorithms/dnn/keras/convert.py
Simulation Engine
- Analog Core
simulator/cores/analog_core.py - Core Variants
simulator/cores/bitsliced_core.py - Core Parameters
simulator/parameters/core_parameters.py - Compute Backend
simulator/backend/backend.py
Hardware Models
- Crossbar Arrays
simulator/circuits/array/iarray.py - ADC and DAC
simulator/circuits/adc/iadc.py - Device Models
simulator/devices/idevice.py
Algorithms
- DNN Operations
simulator/algorithms/dnn/dnn.py - Analog Convolution
simulator/algorithms/dnn/analog_convolution.py - DFT Algorithm
simulator/algorithms/dsp/dft.py
Other components
- Engineer
Connections 25
- Engineer → Inference Examples: selects model
- Inference Examples → DNN Parameters: configures hardware
applications/dnn/torch/cifar10_resnet/inference_cifar10_resnet.py - Inference Examples → PyTorch Conversion: converts model
applications/dnn/torch/cifar10_resnet/inference_cifar10_resnet.py - Inference Examples → Keras Conversion: converts model
applications/dnn/keras/cifar10_resnet/inference_cifar10_resnet.py - Inference Examples → Inference Interface: uses interface
applications/dnn/inference/interface/inference_net.py - Inference Examples → Data Preparation: prepares inputs
- Inference Interface → Inference Evaluation: runs inference
- Inference Interface → DNN Parameters: configures parameters
applications/dnn/inference/interface/inference_net.py - ADC/DAC Calibration → Inference Examples: sets ADC/DAC ranges
- DNN Parameters → Core Parameters: sets core settings
applications/dnn/dnn_inference_params.py - PyTorch Conversion → PyTorch Analog Layers: replaces layers
simulator/algorithms/dnn/torch/convert.py - PyTorch Analog Layers → Analog Convolution: delegates convolution
simulator/algorithms/dnn/torch/conv.py - Keras Conversion → Analog Core: creates analog layers
- DNN Operations → Analog Core: uses analog cores
simulator/algorithms/dnn/dnn.py - DNN Operations → Analog Convolution: uses convolution
simulator/algorithms/dnn/dnn.py - DFT Algorithm → Analog Core: uses analog core
applications/dsp/2d_dft_example.py - Analog Core → Core Variants: supports core styles
simulator/cores/analog_core.py - Analog Core → Crossbar Arrays: simulates array operations
simulator/cores/analog_core.py - Analog Core → Core Parameters: reads configuration
simulator/cores/analog_core.py - Core Variants → ADC and DAC: uses ADC/DAC models
simulator/cores/bitsliced_core.py - Crossbar Arrays → Compute Backend: uses compute backend
simulator/circuits/array/iarray.py - ADC and DAC → Compute Backend: uses compute backend
simulator/circuits/adc/iadc.py - Device Models → Compute Backend: uses compute backend
simulator/devices/idevice.py - Core Parameters → Device Models: configures device effects
- Inference Evaluation → Engineer: reports accuracy