Skip to main content

High-performance MLX implementation of Manifold-Constrained Hyper-Connections (mHC)

Project description

mhc-mlx

High-performance MLX implementation of Manifold-Constrained Hyper-Connections (mHC) for Apple Silicon.

This library provides a drop-in MHCLayer that fuses multiple operations into optimized Metal kernels, achieving massive speedups over compiled reference layers.

Original Paper: mHC: Manifold-Constrained Hyper-Connections (DeepSeek-AI)

Installation

Install from PyPI:

pip install mhc-mlx

Quick Start

import mlx.core as mx
from mhc_mlx import MHCLayer

# Create some dummy data
B, n, C = 1, 32, 2048
x = mx.random.normal((B, n, C)).astype(mx.bfloat16)

# Initialize layer (uses Metal kernels by default)
layer = MHCLayer(n=n, C=C)

# Forward pass
y = layer(x)
mx.eval(y)
print(y.shape)  # (1, 32, 2048)

Note: You can also import as mlx_mhc if you prefer the style of other community packages:

from mlx_mhc import MHCLayer

Performance

We benchmarked on an Apple M4 Pro (macOS 15.6). mhc-mlx automatically selects the best kernel strategy based on workload size.

Latency Floor ($B=1$, Sequence Length=32)

Optimized for ultra-low latency response times.

Channels (C) Kernel Strategy Layer Speedup
256 Fully Fused 2.27x
1024 Fully Fused 1.57x
2048 Fully Fused 1.58x
4096 Column Parallel 1.41x
8192 Column Parallel 2.18x

High Throughput ($B=32$, Sequence Length=32)

Maximum speedups for heavy data processing.

Operation Scale (n, C) Peak Speedup
Sinkhorn-Knopp n=4 26.99x
Mix + Add (Fused) n=32, C=2048 14.92x
Full MHCLayer n=4, C=4096 17.33x

(Benchmarks run with bfloat16)

To reproduce:

mhc-mlx-bench --mode latency
mhc-mlx-bench --mode throughput --B 32

Key Optimizations

  • Fully Fused Kernel: Single kernel for Aggregate + RMS + Mix + Add. Ideal for $B imes C \le 2048$.
  • Column-Parallel Mixing: Vectorized kernel maximizing throughput for larger workloads.
  • Adaptive Dispatch: Runtime heuristic selects the fastest kernel.
  • Super-Fused Backward: Fused gradients for maximum training efficiency.

Troubleshooting

Kernel Compilation Errors: If you see Metal build errors, ensure you are on macOS with Apple Silicon. Run diagnostics to check your environment:

mhc-mlx-info

"No module named mhc_mlx" Ensure you installed the package mhc-mlx (dash), not mlx-mhc (which is a different package).

Development & Publishing

Workflow Name: For PyPI Trusted Publishing, the workflow filename is publish.yml.

License

MIT

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

mhc_mlx-0.1.1.tar.gz (35.8 kB view details)

Uploaded Source

Built Distribution

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

mhc_mlx-0.1.1-py3-none-any.whl (55.7 kB view details)

Uploaded Python 3

File details

Details for the file mhc_mlx-0.1.1.tar.gz.

File metadata

  • Download URL: mhc_mlx-0.1.1.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mhc_mlx-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e1fd9d19ff3158c56c4f7be8b4d9fc7b24493e587db38826bfbe318f528ba4a5
MD5 941b0a90c68378ad57e54c63d682b1c6
BLAKE2b-256 9d91e2cf1a7720b2d1f6faf7d3627d10226869b866182a96771ae027aa8d3e18

See more details on using hashes here.

Provenance

The following attestation bundles were made for mhc_mlx-0.1.1.tar.gz:

Publisher: publish.yml on svdrecbd/mhc-mlx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mhc_mlx-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mhc_mlx-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 55.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mhc_mlx-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ceac4885df926fa3683ccd53a65396f1ce1e0366a37632a7ee0400c4d48ba877
MD5 434eb7128176dad954f85bccdb338808
BLAKE2b-256 6ba3b46c1c884ae47611ed308cee346d65855b0963e929e85e73ddb3dd819073

See more details on using hashes here.

Provenance

The following attestation bundles were made for mhc_mlx-0.1.1-py3-none-any.whl:

Publisher: publish.yml on svdrecbd/mhc-mlx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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