GPU Accelerated Feature Interaction Mining Engine
Project description
GAFIME: GPU-Accelerated Feature Interaction Mining Engine 🚀
GAFIME is a high-performance computing engine engineered to eliminate the biggest bottleneck in modern machine learning workflows: Feature Interaction Discovery.
While most data science tools prioritize ease-of-use over execution efficiency, GAFIME treats feature engineering as a low-level systems problem. By combining C++ optimization, Rust memory-safety pipelines, and cross-platform native bindings (CUDA/Metal), GAFIME bridges the gap between high-level data science and the raw power of modern hardware architectures.
📦 Installation
GAFIME ships natively compiled wheel binaries for Windows, macOS (Apple Silicon), and Linux heavily optimized for performance out-of-the-box.
Basic Install (Engine Only):
pip install gafime
Data Science Install (Includes Scikit-Learn Wrapper):
pip install gafime[sklearn]
⚡ Quickstart: The Interactive Tutorial
The fastest way to understand GAFIME's speed is to try our built-in interactive tutorial generator. Running this command will generate a pre-configured gafime_tutorial.ipynb Jupyter Notebook in your current directory with dummy feature data to instantly evaluate against:
gafime --init
🧩 Scikit-Learn Pipeline Integration
You don't need to rewrite your data pipelines to use GAFIME. By importing the GafimeSelector, you can inject GPU-accelerated feature discovery natively into sklearn.pipeline.Pipeline or GridSearchCV:
import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegression
from gafime.sklearn import GafimeSelector
# Define dummy data
X_train = np.random.randn(1000, 50).astype(np.float32)
y_train = np.random.randint(0, 2, size=1000).astype(np.float32)
# Create a pipeline that automatically discovers the Top 5 best Feature Interactions
# Evaluated instantly against the GPU logic and appends them to your training dataset
pipe = Pipeline([
('interaction_miner', GafimeSelector(k=5, backend='auto', operator='multiply')),
('classifier', LogisticRegression())
])
pipe.fit(X_train, y_train)
🌌 Why GAFIME? The Performance Ceiling
In the current data science landscape, mining interaction data (like checking Feature X * Feature Y against the target) is painfully slow on CPUs or inefficiently memory-managed on GPUs. GAFIME achieves:
- Hardware-Bound Execution: GAFIME targets physical memory bandwidth limits, minimizing the overhead of standard GPU python workflows. You hit the system's ceiling.
- Zero-Overhead Scaling: Utilizing Rust's FFI capabilities on top of optimized CUDA C++, GAFIME bypasses the Python Global Interpreter Lock (GIL) ensuring every clock cycle executes pure feature logic.
- Cross-Platform Scalability: Whether you're on a MacBook executing
Metalfallback logic via Rust, or an RTX workstation targetingCUDAregisters, GAFIME auto-discovers and optimizes for your hardware at runtime.
Caching and Branch-less Operations
GAFIME's specialized memory management layout ensures tabular feature data is cached and aligned, dramatically minimizing GPU cycle stalls regardless of noisy dataset inputs.
🛠️ Technology Stack
- Core Engine: C++ / CUDA (Performance-critical computation paths) and Metal (Apple Silicon native acceleration)
- Safety Pipeline & Schedulers: Rust (Memory safe FFI interface scheduling)
- Data Science Interfacing: Python (Polars / Numpy bindings seamlessly communicating across boundaries)
✅ For being honest
-> Current state of the project is its first v0.1 open beta release.
-> The project is developed with the help of current frontier SOTA models such as Gemini 3.1 Pro (high reasoning effort) and Claude Opus 4.6 (high). The state of project is clearly working on my personal computer! But I am not guaranteeing that at this stage "you could run it on your device as well!"
🤝 If you want
You could collaborate with me via using email to communicate 🥰
Email: hamzausta2222@gmail.com
Contributing and Advanced Usage
Looking to expand the engine metrics or compile natively yourself? Please see our detailed references:
- USAGE.md - Advanced
EngineConfigfeatures and API logic. - CONTRIBUTING.md - Local compilation instructions for OS developers.
GAFIME was conceptualized and engineered for extreme high-frequency feature permutations in complex categorical environments like Banking models.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gafime-0.2.0.tar.gz.
File metadata
- Download URL: gafime-0.2.0.tar.gz
- Upload date:
- Size: 62.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d11f6cc675ac044fb0528e160a19034276f9a559efb30daa72792fc7b9e26b33
|
|
| MD5 |
172c722a8bb4bcaa86bd6250392f5c04
|
|
| BLAKE2b-256 |
628ce0cbf167a956eb5dfba66d190bedc6dccccb1e0a625e8f35c54cd73153ba
|
File details
Details for the file gafime-0.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: gafime-0.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bbe737bdc677dd9aa9ea95c7478c7c454065197d9b788ef3f9d84e8c741e165
|
|
| MD5 |
010914a9fa4a9830ab19cbc4f3ccb02d
|
|
| BLAKE2b-256 |
f70da476145f5ac341c446bafed3283279375fb2b5860e5d96ac070ddf4b5393
|
File details
Details for the file gafime-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: gafime-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b5dc7cd78269116ab2bb14921d324a6a6389a188aaefb702bce7ffcea318cc4
|
|
| MD5 |
69c9247150f53e940942bc709661831c
|
|
| BLAKE2b-256 |
0e52bc6b5dd115708c1995e45a73ede106551ca7c59abc37db7ae1097f595269
|
File details
Details for the file gafime-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: gafime-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 528.2 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58c0d3d559c147969e7041a47529ddc45ea057aa96e2322b436c168616d3490a
|
|
| MD5 |
f7a1c50e0caa851712cb4ef73b8520f7
|
|
| BLAKE2b-256 |
b17f94c9abd5e937f349e24f5b33da31decb9053778c11efe25b32fc13d7cab5
|
File details
Details for the file gafime-0.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: gafime-0.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df7a2efb84dcd7e075ef666dcc740c51911b2fbda2ce143959c27680f96fffd2
|
|
| MD5 |
0a7c2b72feca0a2d05369bde44eb1f09
|
|
| BLAKE2b-256 |
696eff551676ded72421b6f76934f71f4585fdb5900f35a8ec8f78801ec56a76
|
File details
Details for the file gafime-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: gafime-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cbd9dfd30dc872409194d72370f7a09c47a37cf70c94e1efdd7741343f68f39
|
|
| MD5 |
a748cece8f8d8c6515574db9576acea1
|
|
| BLAKE2b-256 |
c4b15f78edda756b6bfd5972fb35808a25a05636f80c5db799716239a7e55326
|
File details
Details for the file gafime-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: gafime-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 528.2 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f337647c08ffa15e51f627ad1b685ff927353fc41a9ffc05c9b8dfd06042327
|
|
| MD5 |
9888f2014be46aa200c729ec3c7fa42d
|
|
| BLAKE2b-256 |
45fc84a2a52620ba47aa651fc8a8c3fbccd22923a02fca4d83b7a0855ecc5990
|
File details
Details for the file gafime-0.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: gafime-0.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5c92ed10b062e6d6e61604060d7074fb0fb3e78c12618508e6e82a120f42887
|
|
| MD5 |
03a14aa218976890b17662a0fc12fc18
|
|
| BLAKE2b-256 |
a6d3b15aeba220e40027bdb671bbd31b55b0fff2cb0576b278462b1c73f2ce62
|
File details
Details for the file gafime-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: gafime-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edac533bbcc864e4cb2d6ecca1b859278fd4bd65a6ac8766c3f0fc88a660b63a
|
|
| MD5 |
1517d290672274b63a7d1a8dfc60b441
|
|
| BLAKE2b-256 |
5ab668df1bb5fc2ce6aa62a10837507f96b174e8027b92cbb365ed92ea8d95e3
|
File details
Details for the file gafime-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: gafime-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 527.5 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44890554093ed74ab7ece1a5f9656f754f9f0eec9df558565d8f26b620b26dbe
|
|
| MD5 |
e4855d034476e59e5b204a0a8a831c46
|
|
| BLAKE2b-256 |
b539e097f107c3273efec1021db4b08d29aa4145063c255d8f14e491cc7edb6a
|
File details
Details for the file gafime-0.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: gafime-0.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b1840bdb0258b0b0f2067b228e2da55c830ee3c27628c9ea1192c20f5d2fc21
|
|
| MD5 |
d9cad9d810797a111d66eb37a9544e07
|
|
| BLAKE2b-256 |
c0b0673862624bd0147889a8f898632fb70297c04ac606354593de46e2e412a0
|
File details
Details for the file gafime-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: gafime-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5bc172b1bb9e92da749f7b15da51c5b69ba0ea959563d7b1d76c629723b8096
|
|
| MD5 |
a7ec965806301fec745b8f2f3b04c75f
|
|
| BLAKE2b-256 |
210c5ad26ac1004b5824fb1bf040a92cd059896c489f6ab50c0942709873c06b
|
File details
Details for the file gafime-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: gafime-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 529.6 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd25ae85bce94e51eeed2557c8dfe9ad92583d8aa84e36bb32bb3162c19b634c
|
|
| MD5 |
4e18a74c67285d18146636cbe95a87ee
|
|
| BLAKE2b-256 |
6318fff9c07188afec44d185eb8bae57a5fde519d33f60041c56aed6db9978af
|