From f1111a9f8b02ecfab9290d02d8ce5886e0f3d4cd Mon Sep 17 00:00:00 2001 From: Martin Evans Date: Mon, 7 Aug 2023 01:20:34 +0100 Subject: [PATCH] Using a pin instead of a `fixed` block --- LLama/Utils.cs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/LLama/Utils.cs b/LLama/Utils.cs index 7f05c1c7..8ab5e711 100644 --- a/LLama/Utils.cs +++ b/LLama/Utils.cs @@ -39,21 +39,19 @@ namespace LLama lparams.rope_freq_scale = @params.RopeFrequencyScale; lparams.mul_mat_q = @params.MulMatQ; + using var pin = @params.TensorSplits.AsMemory().Pin(); unsafe { - fixed (float* splits = @params.TensorSplits) - { - lparams.tensor_split = (nint)splits; + lparams.tensor_split = (nint)pin.Pointer; + } - var model = SafeLlamaModelHandle.LoadFromFile(@params.ModelPath, lparams); - var ctx = SafeLLamaContextHandle.Create(model, lparams); + var model = SafeLlamaModelHandle.LoadFromFile(@params.ModelPath, lparams); + var ctx = SafeLLamaContextHandle.Create(model, lparams); - if (!string.IsNullOrEmpty(@params.LoraAdapter)) - model.ApplyLoraFromFile(@params.LoraAdapter, @params.LoraBase, @params.Threads); + if (!string.IsNullOrEmpty(@params.LoraAdapter)) + model.ApplyLoraFromFile(@params.LoraAdapter, @params.LoraBase, @params.Threads); - return ctx; - } - } + return ctx; } public static IEnumerable Tokenize(SafeLLamaContextHandle ctx, string text, bool add_bos, Encoding encoding)