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.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 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.2.0.tar.gz (62.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.2.0-cp313-cp313-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86-64

gafime-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

gafime-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (528.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gafime-0.2.0-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

gafime-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

gafime-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (528.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gafime-0.2.0-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

gafime-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

gafime-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (527.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gafime-0.2.0-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86-64

gafime-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

gafime-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (529.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Hashes for gafime-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d11f6cc675ac044fb0528e160a19034276f9a559efb30daa72792fc7b9e26b33
MD5 172c722a8bb4bcaa86bd6250392f5c04
BLAKE2b-256 628ce0cbf167a956eb5dfba66d190bedc6dccccb1e0a625e8f35c54cd73153ba

See more details on using hashes here.

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

Hashes for gafime-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7bbe737bdc677dd9aa9ea95c7478c7c454065197d9b788ef3f9d84e8c741e165
MD5 010914a9fa4a9830ab19cbc4f3ccb02d
BLAKE2b-256 f70da476145f5ac341c446bafed3283279375fb2b5860e5d96ac070ddf4b5393

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2b5dc7cd78269116ab2bb14921d324a6a6389a188aaefb702bce7ffcea318cc4
MD5 69c9247150f53e940942bc709661831c
BLAKE2b-256 0e52bc6b5dd115708c1995e45a73ede106551ca7c59abc37db7ae1097f595269

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 58c0d3d559c147969e7041a47529ddc45ea057aa96e2322b436c168616d3490a
MD5 f7a1c50e0caa851712cb4ef73b8520f7
BLAKE2b-256 b17f94c9abd5e937f349e24f5b33da31decb9053778c11efe25b32fc13d7cab5

See more details on using hashes here.

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

Hashes for gafime-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 df7a2efb84dcd7e075ef666dcc740c51911b2fbda2ce143959c27680f96fffd2
MD5 0a7c2b72feca0a2d05369bde44eb1f09
BLAKE2b-256 696eff551676ded72421b6f76934f71f4585fdb5900f35a8ec8f78801ec56a76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7cbd9dfd30dc872409194d72370f7a09c47a37cf70c94e1efdd7741343f68f39
MD5 a748cece8f8d8c6515574db9576acea1
BLAKE2b-256 c4b15f78edda756b6bfd5972fb35808a25a05636f80c5db799716239a7e55326

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f337647c08ffa15e51f627ad1b685ff927353fc41a9ffc05c9b8dfd06042327
MD5 9888f2014be46aa200c729ec3c7fa42d
BLAKE2b-256 45fc84a2a52620ba47aa651fc8a8c3fbccd22923a02fca4d83b7a0855ecc5990

See more details on using hashes here.

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

Hashes for gafime-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b5c92ed10b062e6d6e61604060d7074fb0fb3e78c12618508e6e82a120f42887
MD5 03a14aa218976890b17662a0fc12fc18
BLAKE2b-256 a6d3b15aeba220e40027bdb671bbd31b55b0fff2cb0576b278462b1c73f2ce62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 edac533bbcc864e4cb2d6ecca1b859278fd4bd65a6ac8766c3f0fc88a660b63a
MD5 1517d290672274b63a7d1a8dfc60b441
BLAKE2b-256 5ab668df1bb5fc2ce6aa62a10837507f96b174e8027b92cbb365ed92ea8d95e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 44890554093ed74ab7ece1a5f9656f754f9f0eec9df558565d8f26b620b26dbe
MD5 e4855d034476e59e5b204a0a8a831c46
BLAKE2b-256 b539e097f107c3273efec1021db4b08d29aa4145063c255d8f14e491cc7edb6a

See more details on using hashes here.

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

Hashes for gafime-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7b1840bdb0258b0b0f2067b228e2da55c830ee3c27628c9ea1192c20f5d2fc21
MD5 d9cad9d810797a111d66eb37a9544e07
BLAKE2b-256 c0b0673862624bd0147889a8f898632fb70297c04ac606354593de46e2e412a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a5bc172b1bb9e92da749f7b15da51c5b69ba0ea959563d7b1d76c629723b8096
MD5 a7ec965806301fec745b8f2f3b04c75f
BLAKE2b-256 210c5ad26ac1004b5824fb1bf040a92cd059896c489f6ab50c0942709873c06b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd25ae85bce94e51eeed2557c8dfe9ad92583d8aa84e36bb32bb3162c19b634c
MD5 4e18a74c67285d18146636cbe95a87ee
BLAKE2b-256 6318fff9c07188afec44d185eb8bae57a5fde519d33f60041c56aed6db9978af

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