From 53ae90487517552a4e1e832cf0e6e2286f1e4789 Mon Sep 17 00:00:00 2001 From: SignalRT Date: Thu, 18 Apr 2024 22:03:47 +0200 Subject: [PATCH] Set GPULayerCount to execute the Test Set GPULayerCount to default value (20) to execute UnitTest. In the case of Release Execution on MacOS set the value to ZERO to disable METAL on MacOS and be able to execute it in CI. --- LLama.Unittest/BasicTest.cs | 2 +- LLama.Unittest/BeamTests.cs | 2 +- LLama.Unittest/Constants.cs | 24 +++++++++++++++++++++++- LLama.Unittest/GrammarTest.cs | 2 +- LLama.Unittest/LLamaContextTests.cs | 2 +- LLama.Unittest/LLamaEmbedderTests.cs | 2 +- LLama.Unittest/LLavaWeightsTests.cs | 2 +- LLama.Unittest/MemoryDisposalTests.cs | 2 +- LLama.Unittest/StatelessExecutorTest.cs | 2 +- LLama.Unittest/TokenTests.cs | 2 +- 10 files changed, 32 insertions(+), 10 deletions(-) diff --git a/LLama.Unittest/BasicTest.cs b/LLama.Unittest/BasicTest.cs index 64fa4d0f..1d54a7e9 100644 --- a/LLama.Unittest/BasicTest.cs +++ b/LLama.Unittest/BasicTest.cs @@ -18,7 +18,7 @@ namespace LLama.Unittest _params = new ModelParams(Constants.GenerativeModelPath) { ContextSize = 2048, - GpuLayerCount = 0 + GpuLayerCount = Constants.CIGpuLayerCount }; _model = LLamaWeights.LoadFromFile(_params); } diff --git a/LLama.Unittest/BeamTests.cs b/LLama.Unittest/BeamTests.cs index 6ae0adbf..88b25672 100644 --- a/LLama.Unittest/BeamTests.cs +++ b/LLama.Unittest/BeamTests.cs @@ -18,7 +18,7 @@ public sealed class BeamTests _params = new ModelParams(Constants.GenerativeModelPath) { ContextSize = 2048, - GpuLayerCount = 0, + GpuLayerCount = Constants.CIGpuLayerCount, }; _model = LLamaWeights.LoadFromFile(_params); } diff --git a/LLama.Unittest/Constants.cs b/LLama.Unittest/Constants.cs index 6e5e92c5..8a496f6e 100644 --- a/LLama.Unittest/Constants.cs +++ b/LLama.Unittest/Constants.cs @@ -1,4 +1,6 @@ -namespace LLama.Unittest +using System.Runtime.InteropServices; + +namespace LLama.Unittest { internal static class Constants { @@ -8,5 +10,25 @@ public static readonly string LLavaModelPath = "Models/llava-v1.6-mistral-7b.Q3_K_XS.gguf"; public static readonly string LLavaMmpPath = "Models/mmproj-model-f16.gguf"; public static readonly string LLavaImage = "Models/extreme-ironing-taxi-610x427.jpg"; + + /// + /// Calculate GpuLayer Count to use in UnitTest + /// + /// Defaults to 20 in all the cases, except IOS release (to disable METAL on github CI) + public static int CIGpuLayerCount + { + get + { + if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + #if DEBUG + return 20; + #else + return 0; + #endif + } + else return 20; + } + } } } diff --git a/LLama.Unittest/GrammarTest.cs b/LLama.Unittest/GrammarTest.cs index db4372b0..d4f6a95b 100644 --- a/LLama.Unittest/GrammarTest.cs +++ b/LLama.Unittest/GrammarTest.cs @@ -16,7 +16,7 @@ namespace LLama.Unittest { ContextSize = 2048, Seed = 92, - GpuLayerCount = 0, + GpuLayerCount = Constants.CIGpuLayerCount, }; _model = LLamaWeights.LoadFromFile(_params); } diff --git a/LLama.Unittest/LLamaContextTests.cs b/LLama.Unittest/LLamaContextTests.cs index bd02ef7b..cc53e369 100644 --- a/LLama.Unittest/LLamaContextTests.cs +++ b/LLama.Unittest/LLamaContextTests.cs @@ -14,7 +14,7 @@ namespace LLama.Unittest var @params = new ModelParams(Constants.GenerativeModelPath) { ContextSize = 768, - GpuLayerCount = 0 + GpuLayerCount = Constants.CIGpuLayerCount, }; _weights = LLamaWeights.LoadFromFile(@params); _context = _weights.CreateContext(@params); diff --git a/LLama.Unittest/LLamaEmbedderTests.cs b/LLama.Unittest/LLamaEmbedderTests.cs index 604e2bd1..570c6c12 100644 --- a/LLama.Unittest/LLamaEmbedderTests.cs +++ b/LLama.Unittest/LLamaEmbedderTests.cs @@ -19,7 +19,7 @@ public sealed class LLamaEmbedderTests ContextSize = 4096, Threads = 5, Embeddings = true, - GpuLayerCount = 0 + GpuLayerCount = Constants.CIGpuLayerCount, }; using var weights = LLamaWeights.LoadFromFile(@params); _embedder = new(weights, @params); diff --git a/LLama.Unittest/LLavaWeightsTests.cs b/LLama.Unittest/LLavaWeightsTests.cs index 2c21a7a1..30d41fd9 100644 --- a/LLama.Unittest/LLavaWeightsTests.cs +++ b/LLama.Unittest/LLavaWeightsTests.cs @@ -18,7 +18,7 @@ namespace LLama.Unittest { // Llava models requires big context ContextSize = 4096, - GpuLayerCount = 0 + GpuLayerCount = Constants.CIGpuLayerCount, }; _llamaWeights = LLamaWeights.LoadFromFile(@params); _lLavaWeights = LLavaWeights.LoadFromFile(Constants.LLavaMmpPath); diff --git a/LLama.Unittest/MemoryDisposalTests.cs b/LLama.Unittest/MemoryDisposalTests.cs index 1bcc7edc..60cd75fd 100644 --- a/LLama.Unittest/MemoryDisposalTests.cs +++ b/LLama.Unittest/MemoryDisposalTests.cs @@ -25,7 +25,7 @@ public class MemoryDisposalTests var @params = new ModelParams(Constants.GenerativeModelPath) { ContextSize = 2048, - GpuLayerCount = 0 + GpuLayerCount = Constants.CIGpuLayerCount, }; var model = LLamaWeights.LoadFromFile(@params); diff --git a/LLama.Unittest/StatelessExecutorTest.cs b/LLama.Unittest/StatelessExecutorTest.cs index ab979471..18f3c25d 100644 --- a/LLama.Unittest/StatelessExecutorTest.cs +++ b/LLama.Unittest/StatelessExecutorTest.cs @@ -20,7 +20,7 @@ namespace LLama.Unittest ContextSize = 60, Seed = 1754, BatchSize = 2, - GpuLayerCount = 0, + GpuLayerCount = Constants.CIGpuLayerCount, }; _weights = LLamaWeights.LoadFromFile(_params); } diff --git a/LLama.Unittest/TokenTests.cs b/LLama.Unittest/TokenTests.cs index 19118bf8..03e3927f 100644 --- a/LLama.Unittest/TokenTests.cs +++ b/LLama.Unittest/TokenTests.cs @@ -15,7 +15,7 @@ public sealed class TokenTests _params = new ModelParams(Constants.GenerativeModelPath) { ContextSize = 2048, - GpuLayerCount = 0, + GpuLayerCount = Constants.CIGpuLayerCount, }; _model = LLamaWeights.LoadFromFile(_params); }