ml-explore / mlx

MLX: An array framework for Apple silicon
https://ml-explore.github.io/mlx/
MIT License
17.29k stars 1k forks source link

[DEPRECATION] MacOS 15 SDK marks some functions used by MLX as deprecated #1426

Open jrp2014 opened 1 month ago

jrp2014 commented 1 month ago
# env CMAKE_BUILD_PARALLEL_LEVEL="" pip install . -v

Includes in the output:

 /Users/user/Documents/AI/mlx/mlx/mlx/backend/accelerate/matmul.cpp:109:9: warning: 'BNNSLayerParametersBroadcastMatMul' is deprecated: first deprecated in macOS 15.0 - Use BNNSGraph* APIs [-Wdeprecated-declarations]
    109 |   const BNNSLayerParametersBroadcastMatMul gemm_params{
        |         ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/vecLib.framework/Headers/BNNS/bnns_structures.h:1391:3: note: 'BNNSLayerParametersBroadcastMatMul' has been explicitly marked deprecated here
   1391 | } BNNSLayerParametersBroadcastMatMul
        |   ^
  /Users/user/Documents/AI/mlx/mlx/mlx/backend/accelerate/matmul.cpp:177:7: warning: 'BNNSFilterCreateLayerBroadcastMatMul' is deprecated: first deprecated in macOS 15.0 - Use BNNSGraph* APIs [-Wdeprecated-declarations]
    177 |       BNNSFilterCreateLayerBroadcastMatMul(&gemm_params, nullptr);
        |       ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/vecLib.framework/Headers/BNNS/bnns.h:269:12: note: 'BNNSFilterCreateLayerBroadcastMatMul' has been explicitly marked deprecated here
    269 | BNNSFilter BNNSFilterCreateLayerBroadcastMatMul(const BNNSLayerParametersBroadcastMatMul *layer_params,
        |            ^
  /Users/user/Documents/AI/mlx/mlx/mlx/backend/accelerate/matmul.cpp:180:5: warning: 'BNNSFilterApplyTwoInput' is deprecated: first deprecated in macOS 15.0 - Use BNNSGraph* APIs [-Wdeprecated-declarations]
    180 |     BNNSFilterApplyTwoInput(
        |     ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/vecLib.framework/Headers/BNNS/bnns.h:541:5: note: 'BNNSFilterApplyTwoInput' has been explicitly marked deprecated here
    541 | int BNNSFilterApplyTwoInput(BNNSFilter filter,
        |     ^
  /Users/user/Documents/AI/mlx/mlx/mlx/backend/accelerate/matmul.cpp:189:3: warning: 'BNNSFilterDestroy' is deprecated: first deprecated in macOS 15.0 - Use BNNSGraph* APIs [-Wdeprecated-declarations]
    189 |   BNNSFilterDestroy(bnns_filter);
        |   ^
  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/vecLib.framework/Headers/BNNS/bnns.h:827:6: note: 'BNNSFilterDestroy' has been explicitly marked deprecated here
    827 | void BNNSFilterDestroy(BNNSFilter filter)
        |      ^

I take these to be neural network functions which are, presumably, being replaced by ones that are a better fit for Apple Intelligence,

No idea what you are supposed to do instead, but, in case you missed it ...

awni commented 1 month ago

Yea we've seen this. We use those functions for half-precision CPU gemms. We'll need to either switch to BNN graph (which is where they are going) or roll our own kernels for that.