Download cstack/include/l3_sigma.h from Snapkitty/flash-attention-rtl: direct link, hf CLI and curl.
- Browser
- Download file 1.87 kB
-
https://huggingface.co/Snapkitty/flash-attention-rtl/resolve/main/cstack/include/l3_sigma.h
- Command line
-
hf download hf://Snapkitty/flash-attention-rtl/cstack/include/l3_sigma.h
-
curl -L -o l3_sigma.h https://huggingface.co/Snapkitty/flash-attention-rtl/resolve/main/cstack/include/l3_sigma.h
1.87 kB
| /* Layer 3 - Sigma kernel: resource limits and drift detection. */ | |
| /* ---- resource limits ---- */ | |
| typedef uint64_t (*sigma_clock_fn)(void *ctx); /* monotonic nanoseconds */ | |
| typedef struct sigma_limits { | |
| uint64_t max_mem_bytes; | |
| uint64_t max_steps; | |
| uint64_t max_ns; | |
| } sigma_limits; | |
| typedef struct sigma_ctx { | |
| sigma_limits lim; | |
| uint64_t mem_used, mem_peak, steps, start_ns; | |
| sigma_clock_fn clock; | |
| void *clock_ctx; | |
| cs_status breach; /* latched first breach, CS_OK if none */ | |
| } sigma_ctx; | |
| /* clock NULL = CLOCK_MONOTONIC. A limit of 0 means "none allowed" (not "unlimited"). */ | |
| void sigma_init(sigma_ctx *s, const sigma_limits *lim, sigma_clock_fn clock, void *clock_ctx); | |
| cs_status sigma_charge_mem(sigma_ctx *s, uint64_t bytes); | |
| cs_status sigma_release_mem(sigma_ctx *s, uint64_t bytes); | |
| cs_status sigma_charge_steps(sigma_ctx *s, uint64_t n); | |
| cs_status sigma_check_time(sigma_ctx *s); | |
| cs_status sigma_status(const sigma_ctx *s); | |
| uint64_t sigma_elapsed_ns(const sigma_ctx *s); | |
| /* ---- drift detection ---- */ | |
| /* Integer EWMA drift detector: ewma += (sample - ewma) / 2^shift, drift when | |
| * |ewma - baseline| > tolerance. Latches on first drift. Deterministic (no floating point). */ | |
| typedef struct sigma_drift { | |
| int64_t baseline, tolerance, ewma; | |
| unsigned shift; | |
| uint64_t samples; | |
| cs_status state; | |
| } sigma_drift; | |
| cs_status sigma_drift_init(sigma_drift *d, int64_t baseline, int64_t tolerance, unsigned shift); | |
| cs_status sigma_drift_update(sigma_drift *d, int64_t sample); | |
| /* State drift: SHA-256 of a state blob must equal the recorded baseline digest. */ | |
| cs_status sigma_state_check(const uint8_t expected[32], const void *state, size_t len); | |