Browse Source

Using a pin instead of a `fixed` block

tags/v0.5.1
Martin Evans 2 years ago
parent
commit
f1111a9f8b
1 changed files with 8 additions and 10 deletions
  1. +8
    -10
      LLama/Utils.cs

+ 8
- 10
LLama/Utils.cs View File

@@ -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<llama_token> Tokenize(SafeLLamaContextHandle ctx, string text, bool add_bos, Encoding encoding)


Loading…
Cancel
Save