From ff4bb377d69e2d2c4cceb6efb004ffd0a9523451 Mon Sep 17 00:00:00 2001 From: Steven Weiss Date: Sun, 9 Jul 2023 12:34:04 -0700 Subject: [PATCH] Fix segfaults due to bad memory view offset. --- crates/ggml/src/context.rs | 5 +++++ crates/models/gpt2/src/lib.rs | 2 +- crates/models/gptj/src/lib.rs | 2 +- crates/models/gptneox/src/lib.rs | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/crates/ggml/src/context.rs b/crates/ggml/src/context.rs index 9dd7d108..e3d24017 100644 --- a/crates/ggml/src/context.rs +++ b/crates/ggml/src/context.rs @@ -278,6 +278,11 @@ impl Context { /// Creates a 1D view over `a`. pub fn op_view_1d(&self, a: &Tensor, ne0: usize, offset: usize) -> Tensor { + #[cfg(debug_assertions)] + assert!( + offset < a.nbytes(), + "Cannot create tensor view with offset larger than tensor" + ); let tensor = unsafe { sys::ggml_view_1d(self.ptr.as_ptr(), a.ptr.as_ptr(), usize_to_i64(ne0), offset) }; diff --git a/crates/models/gpt2/src/lib.rs b/crates/models/gpt2/src/lib.rs index 646d3a98..9e2102b1 100644 --- a/crates/models/gpt2/src/lib.rs +++ b/crates/models/gpt2/src/lib.rs @@ -102,7 +102,7 @@ impl KnownModel for Gpt2 { fn start_session(&self, config: InferenceSessionConfig) -> InferenceSession { InferenceSession::new( config, - self.hyperparameters.n_ctx, + self.context_size, self.hyperparameters.n_layer, self.hyperparameters.n_embd, self.hyperparameters.n_vocab, diff --git a/crates/models/gptj/src/lib.rs b/crates/models/gptj/src/lib.rs index 195f876a..14beb3e1 100644 --- a/crates/models/gptj/src/lib.rs +++ b/crates/models/gptj/src/lib.rs @@ -102,7 +102,7 @@ impl KnownModel for GptJ { fn start_session(&self, config: InferenceSessionConfig) -> InferenceSession { InferenceSession::new( config, - self.hyperparameters.n_ctx, + self.context_size, self.hyperparameters.n_layer, self.hyperparameters.n_embd, self.hyperparameters.n_vocab, diff --git a/crates/models/gptneox/src/lib.rs b/crates/models/gptneox/src/lib.rs index 5339b901..7b2e1649 100644 --- a/crates/models/gptneox/src/lib.rs +++ b/crates/models/gptneox/src/lib.rs @@ -115,7 +115,7 @@ impl KnownModel for GptNeoX { fn start_session(&self, config: InferenceSessionConfig) -> InferenceSession { InferenceSession::new( config, - self.hyperparameters.n_ctx, + self.context_size, self.hyperparameters.n_layer, self.hyperparameters.n_embd, self.hyperparameters.n_vocab,