Skip to main content

GPU Accelerated Feature Interaction Mining Engine

Project description

GAFIME: GPU-Accelerated Feature Interaction Mining Engine 🚀

PyPI version Python Versions License

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:

  1. Hardware-Bound Execution: GAFIME targets physical memory bandwidth limits, minimizing the overhead of standard GPU python workflows. You hit the system's ceiling.
  2. 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.
  3. Cross-Platform Scalability: Whether you're on a MacBook executing Metal fallback logic via Rust, or an RTX workstation targeting CUDA registers, 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.2 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).

🤝 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 EngineConfig features 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gafime-0.3.0.tar.gz (121.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gafime-0.3.0-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

gafime-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

gafime-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (612.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gafime-0.3.0-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

gafime-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

gafime-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (613.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gafime-0.3.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

gafime-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

gafime-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (611.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gafime-0.3.0-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

gafime-0.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

gafime-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (602.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file gafime-0.3.0.tar.gz.

File metadata

  • Download URL: gafime-0.3.0.tar.gz
  • Upload date:
  • Size: 121.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for gafime-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9446a3ccf75d6e9d8863fc7758ba7e5af2f901e17559cef397a91683245aa7e9
MD5 9347271390726132e1fc4b03edca7568
BLAKE2b-256 b11467b719fbfa0c5b6ad65664fbd2a06260fc18f7ec5e7a8dae6860cd217d72

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: gafime-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for gafime-0.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e9943a2842dec79e432b7f0a6a9a92d03cb14b6b4421fce10866ff4afbc707c7
MD5 d505b1df49ed6d87aa296365edb75a03
BLAKE2b-256 cd15dc1e878cff0dda964b38b9cd6de5da87292fd2cc80c458075ddb17980383

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gafime-0.3.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d929dbdcb2d895d3b86c9251dd11d2d6ddcf8d81f7d1b7ecd07e4e9abf84503
MD5 798b83362f6155d4e7425785fe3b830c
BLAKE2b-256 f42e7f9dd9fe9a72f2ce6ab7bc490b2d5eb36ee4461d75f533cfb299eef6c5e8

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gafime-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b450eea3f7c1c86181eeaa339804022a2522ea8cb26e3531d8eb039f089e7dcf
MD5 b31b5dc5ffa06a1c5b6e005352152dd1
BLAKE2b-256 5fadf23e7d74a1f80057ace3c3411ff9c700a81f65bc93135642550281d6bb8d

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: gafime-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for gafime-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2f8ff5c221582af0036e896f3a7f6fc6bb9de8176a63e53f60640eb557351d43
MD5 e711b6eaf3a8f916f2bed196064f03bc
BLAKE2b-256 9402e15b7bcd657f97a27091e4a9cec8b517a9aec2581bfa8034842c733579df

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gafime-0.3.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1655c3dc33b11ef04cd930255ff6c1b9dfa2b66e2f77dd9117ed3290b35a8151
MD5 64c049a91ecc175815a829d2b5f753fb
BLAKE2b-256 7c6f76983406ce38493d8b85c124ea490f7b7d905c9a17ff8cb28452aadfee8d

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gafime-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3bf7d3f06108f25a322578e2983d84923376536b013c43a28a00ee3278f470ed
MD5 027c3b91cbb814b2c09d55c609e34473
BLAKE2b-256 6d571f84fabae9a94ad84845b510ce465b2d123ea0786f6690d55b37343c9096

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: gafime-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for gafime-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8e403b3dd33319201bff14c497b1a4014bd5200bc0b95228570d9edd32531d86
MD5 f90fe9e924be755251f008fad9bdbfc9
BLAKE2b-256 394b6dd59f47cb66e0889dbedc22c5f5705d1a4db63b5938e959379297d585b0

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gafime-0.3.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f07909ce85ec868ea33ff2f1fab7d80d971f53b890500781bbeb359639941519
MD5 249d88ea4d2b897468d49db48cb8a7b0
BLAKE2b-256 bcd0a1a83aa2a7db6a5cbce26e25bfcdb5e68c9394fb87ac4c2fc58064a13a0a

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gafime-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7cbccf53f6eb55582823757d774591c31337d6ed1890877f5f9ee4ac2ab1e27
MD5 5c980966e4ece665b5ee3d38b03bf9c1
BLAKE2b-256 1dfde59042df28cdbc461440a7c8cd4eaaa73e8a231a4c01ff4b75a1abbee4ea

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: gafime-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for gafime-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5caf813985f1562b97135365b1a98d57add9e056d7b884e173145e35f28c1c4e
MD5 fc51637e48b144533dea1245e8a5f243
BLAKE2b-256 a2b8fbf1f565e67c212b2aa2870ad3498c967445df7b0dcdba2daf4daefef79f

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for gafime-0.3.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3b9f060d1911ac567f59bb99d8b17397aa70c77849a6f086d2fa7d5ccda128a1
MD5 6c1eda290711971d1316daba1e1124f8
BLAKE2b-256 6e26d0ad44ec0b214dcad0bb8638a74ec5d11fc0ea1704b3ef356440de8fc8e4

See more details on using hashes here.

File details

Details for the file gafime-0.3.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gafime-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a49be51b30c03d783ef596b57d46881fa9acc7e1218705650d660d54f6931588
MD5 f46da59e9f897307e7c5c2e8c1c474d4
BLAKE2b-256 5c5f11b738cbc370df5ff3bdf77c2284ce00d158f156d3a6d12b691d4517f0ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page