Skip to content

Conversation

ChrisRackauckas
Copy link
Member

Summary

  • Adds ArrayInterfaceMetalExt extension with proper lu_instance implementation for Metal.jl arrays
  • Fixes issue where MtlArray lu_instance failed due to 0×0 matrix creation causing Metal Performance Shaders framework error
  • Follows the same pattern as the existing CUDA extension for consistent GPU array support

Changes

  • Add ArrayInterfaceMetalExt.jl extension module
  • Add Metal.jl to Project.toml weakdeps and extensions
  • Add Metal.jl tests in test/gpu/metal.jl
  • Update test runner to include Metal tests in GPU group

Test plan

  • All existing tests pass
  • Metal.jl extension properly implements lu_instance without errors
  • Code follows established patterns from CUDA extension
  • Manual testing with Metal.jl arrays (requires macOS with Metal support)

Fixes #467

🤖 Generated with Claude Code

- Add ArrayInterfaceMetalExt extension with proper lu_instance implementation
- Fix issue where MtlArray lu_instance failed due to 0x0 matrix creation
- Add Metal.jl to weakdeps and extensions in Project.toml
- Add Metal.jl test to verify lu_instance works properly
- Follow same pattern as CUDA extension for GPU array support

Fixes #467

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

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link

codecov bot commented Sep 1, 2025

Codecov Report

❌ Patch coverage is 0% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 62.17%. Comparing base (e4068ff) to head (d7d7b7b).
⚠️ Report is 5 commits behind head on master.

Files with missing lines Patch % Lines
ext/ArrayInterfaceMetalExt.jl 0.00% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #468      +/-   ##
==========================================
- Coverage   62.71%   62.17%   -0.55%     
==========================================
  Files          12       13       +1     
  Lines         574      579       +5     
==========================================
  Hits          360      360              
- Misses        214      219       +5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

ChrisRackauckas and others added 2 commits September 1, 2025 18:14
- Simplify test to directly check that lu_instance returns an LU type
- Make Metal tests only run on macOS using Sys.isapple() check
- Add LinearAlgebra import for LU type check

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

Co-Authored-By: Claude <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas merged commit 7892d2b into master Sep 2, 2025
17 of 21 checks passed
@ChrisRackauckas ChrisRackauckas deleted the fix-metal-lu-instance branch September 2, 2025 01:21
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.

lu_instance doesn't work for Metal.jl array
1 participant