Browse Source

MacOS Runtime detection and clasification

Create different paths to different MacOS platforms.
Dynamically load the right library
tags/v0.8.0
SignalRT 2 years ago
parent
commit
d1244332ed
6 changed files with 2839 additions and 6 deletions
  1. +13
    -5
      LLama/LLamaSharp.Runtime.targets
  2. +3
    -1
      LLama/Native/NativeApi.cs
  3. +0
    -0
      LLama/runtimes/macos-arm64/ggml-metal.metal
  4. +0
    -0
      LLama/runtimes/macos-arm64/libllama.dylib
  5. +2823
    -0
      LLama/runtimes/macos-x86_64/ggml-metal.metal
  6. BIN
      LLama/runtimes/macos-x86_64/libllama.dylib

+ 13
- 5
LLama/LLamaSharp.Runtime.targets View File

@@ -27,13 +27,21 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>libllama-cuda12.so</Link>
</None>
<None Include="$(MSBuildThisFileDirectory)runtimes/libllama.dylib">
<None Include="$(MSBuildThisFileDirectory)runtimes/macos-arm64/libllama.dylib">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>libllama.dylib</Link>
<Link>runtimes/macos-arm64/libllama.dylib</Link>
</None>
<None Include="$(MSBuildThisFileDirectory)runtimes/ggml-metal.metal">
<None Include="$(MSBuildThisFileDirectory)runtimes/macos-arm64/ggml-metal.metal">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>ggml-metal.metal</Link>
</None>
<Link>runtimes/macos-arm64/ggml-metal.metal</Link>
</None>
<None Include="$(MSBuildThisFileDirectory)runtimes/macos-x86_64/libllama.dylib">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>runtimes/macos-x86_64/libllama.dylib</Link>
</None>
<None Include="$(MSBuildThisFileDirectory)runtimes/macos-x86_64/ggml-metal.metal">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>runtimes/macos-x86_64/ggml-metal.metal</Link>
</None>
</ItemGroup>
</Project>

+ 3
- 1
LLama/Native/NativeApi.cs View File

@@ -79,7 +79,9 @@ namespace LLama.Native

if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
return IntPtr.Zero;
return TryLoad("runtimes/macos-arm64/libllama.dylib", System.Runtime.Intrinsics.Arm.ArmBase.Arm64.IsSupported)
?? TryLoad("runtimes/macos-x86_64/libllama.dylib")
?? IntPtr.Zero;
}
#endif



LLama/runtimes/ggml-metal.metal → LLama/runtimes/macos-arm64/ggml-metal.metal View File


LLama/runtimes/libllama.dylib → LLama/runtimes/macos-arm64/libllama.dylib View File


+ 2823
- 0
LLama/runtimes/macos-x86_64/ggml-metal.metal
File diff suppressed because it is too large
View File


BIN
LLama/runtimes/macos-x86_64/libllama.dylib View File


Loading…
Cancel
Save