Skip to content

Conversation

Michael-A-Kuykendall
Copy link
Owner

Summary

  • Fixes Apple Silicon hardware detection for users with M3 Pro and other Apple Silicon Macs
  • Resolves issue Cannot get apple gpu info #87 where users received "MLX Backend: Not available" despite having supported hardware
  • Separates hardware detection from Python package installation checks
  • Enhances gpu-info output with actionable guidance

Problem

Users with Apple Silicon Macs (M3 Pro confirmed) were seeing:

🍎 MLX Backend: Not available (requires Apple Silicon)

This was misleading because:

  1. They DO have Apple Silicon hardware
  2. The check was incorrectly looking for MLX Python packages instead of hardware

Solution

Before (incorrect logic):

Hardware check: ✅ macOS + aarch64 
Python check: ❌ MLX packages not found
Result: "Not available (requires Apple Silicon)" ← WRONG

After (correct logic):

Hardware check: ✅ macOS + aarch64 
Result: "Hardware supported (Apple Silicon detected)"
Python check: ❌ MLX packages not found  
Guidance: "Install with: pip install mlx-lm"

Changes

  • MLXEngine::check_mlx_availability() now only checks hardware (macOS + aarch64)
  • Added MLXEngine::is_hardware_supported() for clear hardware detection
  • Enhanced gpu-info output distinguishes hardware vs software availability
  • Apple Silicon users get specific installation guidance
  • Added comprehensive regression tests

Test Plan

  • ✅ Added regression tests for Apple Silicon detection
  • ✅ Tests verify hardware detection works independently of Python packages
  • ✅ Tests ensure graceful handling of missing MLX Python packages
  • ✅ Verified compilation on both default and MLX features

Expected User Experience

On Apple Silicon with MLX installed:

🍎 MLX Backend: ✅ Available (Apple Silicon + MLX installed)

On Apple Silicon without MLX (the #87 case):

🍎 MLX Backend: ⚠️  Hardware supported (Apple Silicon detected)
   📦 MLX Python packages not found  
   💡 Install with: pip install mlx-lm

On non-Apple Silicon:

🍎 MLX Backend: ❌ Not supported (requires Apple Silicon macOS)

-Mike

Resolves issue where Apple M3 Pro users received "MLX Backend: Not available"
despite having supported Apple Silicon hardware.

Changes:
- Separate hardware detection from Python package installation checks
- MLXEngine::is_hardware_supported() now correctly detects Apple Silicon
- Enhanced gpu-info output provides actionable guidance for Apple Silicon users
- Added comprehensive regression tests for Apple Silicon detection

Before: Users saw "Not available (requires Apple Silicon)" on M3 Pro
After: Users see "Hardware supported (Apple Silicon detected)" with MLX install guidance

Hardware detection now works independently of MLX Python package installation,
providing clear distinction between hardware capability and software setup.

Fixes #87

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@Michael-A-Kuykendall Michael-A-Kuykendall merged commit 9b0e16d into main Oct 9, 2025
0 of 4 checks passed
Michael-A-Kuykendall added a commit that referenced this pull request Oct 13, 2025
Resolves issue where Apple M3 Pro users received "MLX Backend: Not available"
despite having supported Apple Silicon hardware.

Changes:
- Separate hardware detection from Python package installation checks
- MLXEngine::is_hardware_supported() now correctly detects Apple Silicon
- Enhanced gpu-info output provides actionable guidance for Apple Silicon users
- Added comprehensive regression tests for Apple Silicon detection

Before: Users saw "Not available (requires Apple Silicon)" on M3 Pro
After: Users see "Hardware supported (Apple Silicon detected)" with MLX install guidance

Hardware detection now works independently of MLX Python package installation,
providing clear distinction between hardware capability and software setup.

Fixes #87

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant