| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| CC ?= gcc |
|
|
| |
| CFLAGS ?= -O3 -march=native -fno-strict-aliasing -fopenmp -funroll-loops -ftree-vectorize -ffast-math -Wall -Wno-unused-function -Wno-unused-variable |
| LDLIBS ?= -lm |
|
|
| |
| |
| OPENBLAS_CFLAGS := $(shell echo 'int main(){return 0;}' | $(CC) -x c - -lopenblas -o /dev/null 2>/dev/null && echo '-DHAVE_OPENBLAS') |
| OPENBLAS_LDLIBS := $(shell echo 'int main(){return 0;}' | $(CC) -x c - -lopenblas -o /dev/null 2>/dev/null && echo '-lopenblas') |
| CFLAGS += $(OPENBLAS_CFLAGS) |
| LDLIBS += $(OPENBLAS_LDLIBS) |
|
|
| BIN := ste_train |
| DATA := data/wiki_clean.bin |
| MODEL := model_dialogue.ste |
|
|
| DEPS := models/ste_train.c runtime/lal_runtime.c runtime/lal_runtime.h \ |
| runtime/lal_ponder.h \ |
| runtime/lal_data_loader.h runtime/lal_model_growth.h \ |
| runtime/lal_semantic_logic.h runtime/lal_whitebox_probe.h \ |
| runtime/lal_inference_tracer.h runtime/lal_concept_attn.h |
|
|
| .PHONY: all train test clean help |
|
|
| all: $(BIN) |
|
|
| $(BIN): $(DEPS) |
| $(CC) $(CFLAGS) -o $@ models/ste_train.c runtime/lal_runtime.c $(LDLIBS) |
| @echo "[*] built $(BIN) — 直接 ./$(BIN) 即走固化路径, 无需任何参数" |
|
|
| |
| |
| train: $(BIN) |
| @if [ ! -f $(DATA) ]; then \ |
| echo "[!] 缺少固化数据 $(DATA) — 这是唯一正确的数据, 不要用别的 .bin 替代"; \ |
| exit 1; fi |
| ./$(BIN) |
|
|
| |
| |
| |
| test: $(BIN) |
| @if [ ! -f $(MODEL) ]; then \ |
| echo "[!] 缺少 $(MODEL), 请先 make train"; exit 1; fi |
| ./$(BIN) --diagnose-only --resume $(MODEL) --prompt "什么是火?" --max-gen 40 |
|
|
| clean: |
| rm -f $(BIN) $(BIN).exe |
|
|
| help: |
| @./$(BIN) --help 2>/dev/null || $(MAKE) -s _helpfallback |
|
|
| _helpfallback: |
| @echo "先 make 编译, 再 make help 查看完整参数说明" |
|
|