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.2.tar.gz (124.4 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.2-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

gafime-0.3.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (605.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

gafime-0.3.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (605.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

gafime-0.3.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (604.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

gafime-0.3.2-cp310-cp310-manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

gafime-0.3.2-cp310-cp310-macosx_11_0_arm64.whl (596.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for gafime-0.3.2.tar.gz
Algorithm Hash digest
SHA256 c0638ebc86ee4d7cb06f3f51403517eaaac531fc6d8b41c20115fbc78d785d06
MD5 523233cd86603c34fe9604d2e75ffffa
BLAKE2b-256 f8c236e46671381d9d9c6f01f755a1e2aa131d503b502d6b2df7b62157bc8dbf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gafime-0.3.2-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/6.2.0 CPython/3.12.3

File hashes

Hashes for gafime-0.3.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4288fba524d0f392959f6fdc38aa36b44727ff2927a1e6d484ebe43b9652ec31
MD5 b202c4a47bb96b20ba56254098f162ab
BLAKE2b-256 85fc53855b87b7888c061370ffa18c97a97e4022c26b1ec1bdc070a882d4cd9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be2171628b2ccc40a4e8272a650c35ba1e9ef46879e28054f2aa5957ad483b68
MD5 a140299d0a7be34531c61e4e96f44560
BLAKE2b-256 780d8a73f5df58b6ed55cb91bb0f87a45e2db89dcd62da216472becc75823ae2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c5165a2314f26625f0b3072c56cddc3dc0394e40583eac3e5664fdbd1b1cf7c
MD5 a53978986e5ef1520bbc46547f5a6809
BLAKE2b-256 f92d55177caf080ce64996792a645a7e85930bdd808d6e125d56c4e15e5100a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gafime-0.3.2-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/6.2.0 CPython/3.12.3

File hashes

Hashes for gafime-0.3.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8b9cc2e96043fba624b2a150541ca675ad64fbf285f0bc1041f0ac22f9d9ed23
MD5 cd864c69219b058c1d273fa4f66dbfef
BLAKE2b-256 08a3393f8957339104dd21526c56a6d55477298309820c9cdbc0b9ab4ba4ae8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 983c86865392a9bb1772c7af741b7074a1f669b7e5a863513ea804f3799b78ca
MD5 2beca4c81967d8fd905a77aaf9354dfa
BLAKE2b-256 ebfd94c70df8caa0412e558d159ebf7b4365eb8d66d31579f974324e1f917a9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 382ee05f860d113a51247229b84a4287a72fc137af5db490648c486b913e4e6f
MD5 e34279d4f3f27e387202b4c9fcd52435
BLAKE2b-256 71c0bb76e49be1c936c1fab8b6a45d0896b544abe7bfc1f9c72f5afaea3decfd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gafime-0.3.2-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/6.2.0 CPython/3.12.3

File hashes

Hashes for gafime-0.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0ce5593d3bf3e6006d736b1a327aa320683cf836f63238bac8657839b3dec204
MD5 d73152913c72c819aac6f0279436eaa9
BLAKE2b-256 d1548100bc843b503517b6a74b23ed1222117b829b745883ec991791c22858e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2cee1624deb6a1e79c07c35ed90d115530c919d3a4abf34a357e72ad58454111
MD5 14fc05cdc21ea4c85daffbe6022d1994
BLAKE2b-256 8c994ac4cef18b537faa05c66ee75a20c72d4e53f6858a2a28a777ebc925e49c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5bcb91b7170e16b7f64915fd99c9b612e1f2339230b51f4e69eada57506da16c
MD5 c53532c272d9942ebd9aba012a83714c
BLAKE2b-256 417978f9e616d6ea57ce506c1efae3a69e82b8f1cf7e5ebba1631e78e8dfbee9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gafime-0.3.2-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/6.2.0 CPython/3.12.3

File hashes

Hashes for gafime-0.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d1f2af6bb6feaecd89e465074fa1f01abfacde0998fa0d4624523c44080163e5
MD5 85ef430bc58e59c5fd23ae2cc414c570
BLAKE2b-256 1810f388afe66b5e1d316bf4b206fd7d34eb9cb8d751bf3946de33289550f51e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d3a81ba6bf2c86455828f08389fb275777c016f060ba86b863983d652ea7befa
MD5 b5ae49da45bea278cd22a615e3cf4664
BLAKE2b-256 71af89ea9bdb61b8d18b3c8819fc0d00664bbc89aea58d878847e98c879e7023

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0abebcd3af84dcf92247e5dbdb8518d26cd5cd2b26ab63d70abd6bfe2b07850c
MD5 a7c60835c0f57076a7c30ac5d870a5ed
BLAKE2b-256 28d131f892712fea997d08f9c07ae00decb21fb213fcfbd34511509fc286dd47

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