Skip to content

Python API Reference

Status: v0.5.0 — All algorithm wrappers complete. C backend interface via _HAS_C flag.

Installation

$env:PYTHONPATH = "bindings/python"
python -c "from SneppX_ALG import *"

No C compilation needed — wrappers are pure Python with optional C backend.

Package Structure

SneppX_ALG/
  __init__.py                   # Re-exports all public classes
  interface_bindings/
    __init__.py                  # Per-algorithm imports
    tensor.py                    # Tensor class (C-backed or pure NumPy)
    nn.py                        # Linear, Sequential layers
    train.py                     # TrainConfig, CUDA optimizer flag
    optim.py                     # Optimizer wrapper (SGD/AdamW)
    data.py                      # Data pipeline (TextDataset, BPE)
    algo_arc.py                  # ARCLayer, ARCAdversarialTrainGraph
    algo_npe.py                  # NPEInstruction, NPEProgram, NPECompiler, NPEVM
    algo_fm.py                   # FMController, FMSyncNCCL
    algo_hss.py                  # HSSModel
    algo_ser.py                  # SERModel
    checkpoint.py                # Checkpoint coordinator, fault tolerance
    profiler.py                  # Profiler, Timer decorator
    model_zoo.py                 # from_pretrained(), model configs
    quantization.py              # QuantMode, QuantizedLinear

Core Types

Tensor

from SneppX_ALG import Tensor

t = Tensor(np.random.randn(4, 8).astype(np.float32))
arr = t.numpy()          # -> np.ndarray
val = t.item()            # -> float
t2 = Tensor.zeros(4, 8)
t3 = Tensor.ones(4, 8)
t4 = Tensor.randn(4, 8)
t5 = Tensor.from_numpy(np.array(...))

# Operator overloads
c = a + b      # __add__
c = a - b      # __sub__
c = a * b      # __mul__
c = a / b      # __truediv__
c = a @ b      # __matmul__
c = -a         # __neg__

Model

from SneppX_ALG import Model

model = Model({'input_dim': 8, 'output_dim': 8})
out = model.forward(np.random.randn(1, 4, 8).astype(np.float32))
model.train()
model.eval()

Algorithm Wrappers

ARC

from SneppX_ALG.interface_bindings.algo_arc import ARCLayer, ARCAdversarialTrainGraph

# Defense layer
layer = ARCLayer(input_dim=16, output_dim=16)
output = layer.forward(input_array)
adversarial = layer.simulate_attack(input_array, attack_type=1, epsilon=0.1)

# Adversarial training graph
builder = ARCAdversarialTrainGraph(attack_epsilon=0.1)
clean_out, adv_out = builder.build(weights, x_clean)

NPE + JIT

from SneppX_ALG.interface_bindings.algo_npe import NPECompiler, NPEProgram, NPEVM

# Compile a program
compiler = NPECompiler()
prog = compiler.compile([])
opt = compiler.jit_optimize(prog)   # DCE + matmul+relu fusion

# Execute in VM
vm = NPEVM()
vm.load_program(opt)
output = vm.run(input_array)

FM + NCCL

from SneppX_ALG.interface_bindings.algo_fm import FMController, FMSyncNCCL

ctrl = FMController(num_nodes=4, memory_dim=64, memory_capacity=100)
output = ctrl.forward(node_id=0, input_array)

# NCCL sync with callback
nccl = FMSyncNCCL()
def my_callback(data, ctx):
    return data
result = nccl.sync(data_array, callback=my_callback)

SER

from SneppX_ALG.interface_bindings import SERModel

ser = SERModel(num_experts=8, num_active=2, input_dim=32, expert_dim=64, output_dim=32)
output = ser.forward(input_array)
params = ser.parameters()

HSS

from SneppX_ALG.interface_bindings import HSSModel

hss = HSSModel(state_dim=16, input_dim=8, output_dim=8)
output = hss.forward(input_array)

Training

from SneppX_ALG.interface_bindings.train import TrainConfig
from SneppX_ALG import Trainer

# CPU training
config = TrainConfig()
config.learning_rate = 0.01
config.use_cuda_optimizer = False   # default

# CUDA optimizer
config.use_cuda_optimizer = True    # requires SNEPPX_HAS_CUDA

model = Model({'input_dim': 8, 'output_dim': 8})
trainer = Trainer(model, config.__dict__)
loss = trainer.train_step(input_data, target_data)
avg_loss = trainer.evaluate(input_data, target_data)

Utilities

Optimizer

from SneppX_ALG import Optimizer

opt = Optimizer(params, lr=0.001, optimizer_type='adamw', weight_decay=0.01)
opt.step()
opt.zero_grad()

Sequential / Linear

from SneppX_ALG import Sequential, Linear

net = Sequential(
    Linear(8, 32),
    Linear(32, 16),
)
out = net(np.random.randn(4, 8))

Checkpoint

from SneppX_ALG.interface_bindings.checkpoint import CheckpointWriter, CheckpointReader

writer = CheckpointWriter("checkpoint.bin")
writer.save({"weights": w, "step": 1000})

reader = CheckpointReader("checkpoint.bin")
data = reader.load()

Profiler

from SneppX_ALG.interface_bindings.profiler import Profiler, timeit

profiler = Profiler()
with profiler.profile("forward"):
    out = model.forward(data)

@timeit(profiler)
def my_func():
    pass

Quantization

from SneppX_ALG.interface_bindings.quantization import QuantMode, quantize, dequantize, QuantizedLinear

qlayer = QuantizedLinear(64, 128, mode=QuantMode.INT8_SYM)
q_out = qlayer.forward(data)

Model Zoo

from SneppX_ALG.interface_bindings.model_zoo import (
    get_model_config, from_pretrained, LLMConfig
)

cfg = get_model_config("llama2-7b")
model = from_pretrained("meta-llama/Llama-2-7b")

# LLMConfig constructors
cfg = LLMConfig.from_name("llama3", "8B")
cfg = LLMConfig.from_json('{"family": "llama3", ...}')

# Serialize
json_str = cfg.to_json()

# Extend context to 128K
cfg.extend_context(131072)

# MHA forward pass
output = cfg.forward_mha(hidden_states, attention_mask, position_ids)

Running Tests

$env:PYTHONPATH = "bindings/python"
python tests/python/test_algo_wrappers.py    # 8 tests
python tests/python/test_tensor.py
python tests/python/test_quantization.py      # 17 tests
python tests/python/test_checkpoint.py        # 23 tests
python tests/python/test_profiler.py          # 13 tests
python tests/python/test_model_zoo.py         # 49 tests