From a1329b99e774366f7a5a5afdaeeb88504a3ba805 Mon Sep 17 00:00:00 2001 From: "The gemma.cpp Authors" Date: Mon, 8 Jun 2026 12:31:16 -0700 Subject: [PATCH] Fix double google initialization when using the python gemma wrapper PiperOrigin-RevId: 928710772 --- BUILD.bazel | 1 + evals/benchmark_helper.cc | 3 +-- evals/benchmark_helper.h | 2 -- evals/gemma_batch_bench.cc | 4 +++- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index e8a1bbfe..e25df0b3 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -885,6 +885,7 @@ cc_test( ":benchmark_helper", ":gemma_lib", "@googletest//:gtest_main", # buildcleaner: keep + "//io", "@highway//:hwy", "@highway//:hwy_test_util", "@highway//:nanobenchmark", diff --git a/evals/benchmark_helper.cc b/evals/benchmark_helper.cc index 71869d14..d18d8c50 100644 --- a/evals/benchmark_helper.cc +++ b/evals/benchmark_helper.cc @@ -37,8 +37,7 @@ namespace gcpp { GemmaEnv::GemmaEnv(const GemmaArgs& args) - : initializer_value_(gcpp::InternalInit()), - ctx_(args.threading), + : ctx_(args.threading), env_(ctx_), gemma_(args, ctx_) { const ModelConfig& config = gemma_.Config(); diff --git a/evals/benchmark_helper.h b/evals/benchmark_helper.h index 85f0d21c..60447f40 100644 --- a/evals/benchmark_helper.h +++ b/evals/benchmark_helper.h @@ -125,8 +125,6 @@ class GemmaEnv { MatMulEnv& MutableEnv() { return env_; } private: - // This is used to ensure that InternalInit is called before anything else. - int initializer_value_ = 0; ThreadingContext ctx_; MatMulEnv env_; Gemma gemma_; diff --git a/evals/gemma_batch_bench.cc b/evals/gemma_batch_bench.cc index 6a4f893a..e1eb2ee5 100644 --- a/evals/gemma_batch_bench.cc +++ b/evals/gemma_batch_bench.cc @@ -21,6 +21,7 @@ #include "evals/benchmark_helper.h" #include "gemma/gemma.h" +#include "io/io.h" #include "hwy/base.h" #include "hwy/nanobenchmark.h" #include "hwy/profiler.h" @@ -146,6 +147,8 @@ TEST_F(GemmaBatchBench, RandomQuestionsBatched) { } // namespace gcpp int main(int argc, char** argv) { + testing::InitGoogleTest(&argc, argv); + fprintf(stderr, "GemmaEnv setup..\n"); gcpp::ConsumedArgs consumed(argc, argv); gcpp::GemmaArgs args(argc, argv, consumed); @@ -154,7 +157,6 @@ int main(int argc, char** argv) { gcpp::GemmaEnv env(args); gcpp::s_env = &env; - testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }