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

Uploaded CPython 3.13Windows x86-64

gafime-0.3.1-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.1-cp313-cp313-macosx_11_0_arm64.whl (607.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

gafime-0.3.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (607.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

gafime-0.3.1-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.1-cp311-cp311-macosx_11_0_arm64.whl (607.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

gafime-0.3.1-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.1-cp310-cp310-macosx_11_0_arm64.whl (596.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: gafime-0.3.1.tar.gz
  • Upload date:
  • Size: 122.3 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.1.tar.gz
Algorithm Hash digest
SHA256 94980d69b028e20b5bab953ea5838d507f912a8918433e56378f3aba60e0c37c
MD5 7d502f9faf72fbc3b6988a7909e24f40
BLAKE2b-256 692a6405b2ebda3f50323e0cb86e2627c06d98f168af81e8fa42b79dd1360a9f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gafime-0.3.1-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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cd82f773e0b29a3574455a147dc870d3fa000105cc87fa25d5b95ce090e155e4
MD5 8ee60a51ee7db2c0caf7c5d441b665d2
BLAKE2b-256 b51bf928fb072d53c9837d5e3f1c5a8310099b19e8112bb5848ef1e8a8ac708a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6e9450be08378529f9d299fd6de7b7b43e63d471cf09dbf54ff838aca9d5036f
MD5 6d99fdec55ba7b260c1967c2fa910e94
BLAKE2b-256 71d759ae26c4fad536b29b486702b886799edee19e88551cb8e3fe1a57cb1e79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25200b3712dbb07d648f583d932cf1fda15b4a5fd0a4b006e27fe0c7fb97908b
MD5 671e382b4aef3e9ba3ba200c8ec647ec
BLAKE2b-256 c76888720ebf751cf47eb94cba7d6223f9747d9b6ce111926de430984cadb3ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gafime-0.3.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7d32167aed41a5aa205d43fb7f80e06a5fef99c4eea86bf87de236cf42d7d2d6
MD5 f0ad2f2fd722001b6ee503b20acc16e8
BLAKE2b-256 8dddff51b33d083688f4ecdca65c96d11ca26bce3d9ca66d1ccb2437e01e9af9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e2ad7c53f26b886b005d4e8841f8cd22fdd68c1fcf716b3dbddedcf0f1ebf07
MD5 d3d5351d0d869ef81bf6ff687e03bf3e
BLAKE2b-256 43af0ee423cc4ab727c4fcc8b5295e4f143850e28371a007b51663dd86d51c12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21f03fb50135c021ffc3fe77aab9e8ad1e5648e909aa291a759c302b863a3bbc
MD5 48828d57aa4ff043eb530da4ae5252b8
BLAKE2b-256 83984b4f87c94650b271cb3041034753a3af804337ac260ff4651feb9a7c7a91

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gafime-0.3.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8f7a5fb99165840fbe1dfe073a1fecb745aa1194d42717f21b6e711b9dc028e5
MD5 de1bacde6f51c6978fe642f4265e6371
BLAKE2b-256 e88528045129f4238cf64b0e755689bf27eab4dcf76748dd69a545af71e0e470

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b1200969199a98ae0a036f6473b5e0b072261c98c3bcbd87c90e0ef7f3588f7b
MD5 078fac63897482c2a7d20ae1c2d7a00f
BLAKE2b-256 053391b424b348ae32ca203c0d9dd5fa5eac09b877640305e716c1b22c7f4d5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b3692b82a157ae7a4b576ba4bb88dceb106d13172be99ac47035069db047e34d
MD5 0fca594dccc5a7fbb0b8077a9897a3aa
BLAKE2b-256 603954085e1e26f9fa42fbaa52284b3d15382338f8c26432b184a081dee7ba2d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gafime-0.3.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2c95f415d77704bd43ff7c394588e0c455918aa6096d1d2c7144091a2e76da4d
MD5 5cf96a9892d5f42e9c0e983aabe828f4
BLAKE2b-256 29c7ed65707b9e5c596951be081039dbda700abf8b27c9c2af89de46333279fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c73ad4d72a8fc70be81009b0e48844631c524c5677cef7dbd7cfdbb7d4b50226
MD5 70e5db00de9e9c8046e6fb6fde2d54d9
BLAKE2b-256 35aa0d81fb7040e7c16fd9207e2d504ca61053aa4230be9c95ccaf8b6b96b5ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gafime-0.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5e8f41b618521048eaf64ae31d5bfe065db289abd421365eaf4ea1b9f6fe8bd
MD5 a6d400db3d012e1d88fe99c4f32dbb9d
BLAKE2b-256 8ebb0a1dcc352909b9f48f52b7bcd45599f2a0e031f5d09e0b47dab32722e936

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