Native feature-interaction discovery across Rust CPU/SIMD, CUDA, ROCm/HIP, and Metal.
GAFIME searches continuous interactions, decision-path regions, and temporal transforms for tabular and structured machine-learning workflows. Python is the concise public declaration and reporting surface; Rust owns validation, planning, scheduling, lifecycle, and Core execution; each native GPU payload owns its device-local execution.
Stable releases:
python -m pip install gafime
python -m pip install gafime gafime-cuda # Linux/Windows x86_64 + CUDA
python -m pip install gafime gafime-rocm # Linux x86_64 + system ROCmBeta and release-candidate versions:
python -m pip install --pre gafime
python -m pip install --pre gafime gafime-cuda # Linux/Windows x86_64 + CUDA
python -m pip install --pre gafime gafime-rocm # Linux x86_64 + system ROCmOrdinary pip install prefers a stable release; --pre permits beta and RC
versions. For reproducible RC1 testing, pin Core and any vendor payload to the
same exact version:
python -m pip install gafime==1.0.0rc1
python -m pip install gafime==1.0.0rc1 gafime-cuda==1.0.0rc1
python -m pip install gafime==1.0.0rc1 gafime-rocm==1.0.0rc1Core never depends on a GPU payload, while CUDA and ROCm payload versions must
match Core exactly. Apple Silicon users install plain gafime; Metal is
embedded in the macOS arm64 Core wheel and has no standalone distribution. See
the live release status and
backend installation guide for platform details.
from gafime import ComputeBudget, EngineConfig, GafimeEngine
X = [[float(i), float((i * 7) % 11), float((i % 5) - 2)] for i in range(64)]
y = [0.4 * row[0] * row[1] - 0.2 * row[2] for row in X]
config = EngineConfig(
backend="auto",
precision="mixed",
metric_names=("pearson", "r2"),
budget=ComputeBudget(max_comb_size=2),
permutation_tests=0,
num_repeats=1,
)
report = GafimeEngine(config).analyze(
X, y, feature_names=["trend", "cycle", "offset"]
)
print(report.backend)
print(report.interactions.top_k(5, metric_name="pearson"))- Continuous unary and higher-order interaction candidates.
- Native decision-path candidates with target-rediscovered permutation maxT.
- Lag, delta, velocity, acceleration, and rolling time-series candidates.
- Eager, resident, and explicit compiled lifecycles.
- NumPy, Polars/Arrow, file-streaming, scikit-learn, and CLI integration.
| Backend | Distribution | Precision profiles |
|---|---|---|
| Rust Core/SIMD | gafime |
fp32, mixed, fp64 |
| CUDA | gafime-cuda |
fp32, mixed, fp64 |
| ROCm/HIP | gafime-rocm |
fp32, mixed, fp64 |
| Metal | embedded in macOS arm64 gafime |
fp32 only |
Explicit unsupported backend/profile requests fail closed. backend="auto"
selects only from available, compatible native paths; explicit vendor requests
never silently substitute Core. RT/OptiX remains experimental and local-only.
- Backend selection and installation
- Capability reporting
- Precision contract
- Eager, resident, and compiled execution
GAFIME is licensed under Apache-2.0.
Maintainer: Hamza Usta — hamzausta2222@gmail.com
Report suspected vulnerabilities privately through the process in SECURITY.md, not through a public issue.