openvinotoolkit / openvino.genai

Run Generative AI models using native OpenVINO C++ API
Apache License 2.0
100 stars 136 forks source link

openvino genai on ubuntu 24.04, failure to install #610

Open rahulunair opened 1 month ago

rahulunair commented 1 month ago

Context

Tried to isntall openvino on an Intel core ultra 155h with Ubuntu 24.04 using the prebuilt wheels and instructions as well as by trying to build it from scratch,both failed

What needs to be done?

Fix install on Ubuntu 24.04 on client devices (Intel Core Ultra 155H).

Here is the build error log (part of where it failed):

 81%] Building CXX object src/cpp/CMakeFiles/openvino_genai.dir/src/utils.cpp.o
[ 82%] Building CXX object src/cpp/CMakeFiles/openvino_genai.dir/src/continuous_batching_pipeline.cpp.o
[ 85%] Building CXX object src/cpp/CMakeFiles/openvino_genai.dir/src/group_beam_searcher.cpp.o
[ 85%] Building CXX object src/cpp/CMakeFiles/openvino_genai.dir/src/generation_handle.cpp.o
[ 85%] Building CXX object src/cpp/CMakeFiles/openvino_genai.dir/src/tokenizer.cpp.o
[ 86%] Building CXX object src/cpp/CMakeFiles/openvino_genai.dir/src/paged_attention_transformations.cpp.o
[ 87%] Building CXX object src/cpp/CMakeFiles/openvino_genai.dir/src/text_callback_streamer.cpp.o
/home/rahul/coding/openvino.genai/src/cpp/src/llm_pipeline_static.cpp:11:10: fatal error: openvino/pass/stateful_to_stateless.hpp: No such file or directory
   11 | #include <openvino/pass/stateful_to_stateless.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I also tried installing the archive file of openivino and building the deps required for openvino tokenizers, but that failed as well:

python -m pip install ./thirdparty/openvino_tokenizers/[transformers] --pre --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly
Looking in indexes: https://pypi.org/simple, https://storage.openvinotoolkit.org/simple/wheels/nightly
Processing ./thirdparty/openvino_tokenizers
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [157 lines of output]
      loading initial cache file /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/py-build-cmake-preload.cmake
      CMake Warning (dev) at /tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/cmake/data/share/cmake-3.30/Modules/FetchContent.cmake:1953 (message):
        Calling FetchContent_Populate(sentencepiece) is deprecated, call
        FetchContent_MakeAvailable(sentencepiece) instead.  Policy CMP0169 can be
        set to OLD to allow FetchContent_Populate(sentencepiece) to be called
        directly for now, but the ability to call it with declared details will be
        removed completely in a future version.
      Call Stack (most recent call first):
        src/CMakeLists.txt:113 (FetchContent_Populate)
      This warning is for project developers.  Use -Wno-dev to suppress it.

      CMake Deprecation Warning at .py-build-cmake_cache/cp311-cp311-linux_x86_64/_deps/sentencepiece-src/CMakeLists.txt:15 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.

      -- VERSION: 0.2.0
      -- Configuring done (1.2s)
      -- Generating done (0.0s)
      -- Build files have been written to: /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64
      [  1%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/arena.cc.o
      [  2%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/common.cc.o
      [  4%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/extension_set.cc.o
      [  5%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/arenastring.cc.o
      [  7%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/bytestream.cc.o
      [  8%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/generated_enum_util.cc.o
      [ 11%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/generated_message_table_driven_lite.cc.o
      [ 11%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/coded_stream.cc.o
      [ 13%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/generated_message_util.cc.o
      [ 14%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/io_win32.cc.o
      [ 16%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/implicit_weak_message.cc.o
      [ 17%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/message_lite.cc.o
      [ 19%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/int128.cc.o
      [ 20%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/parse_context.cc.o
      [ 22%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/repeated_field.cc.o
      [ 23%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/statusor.cc.o
      [ 25%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/status.cc.o
      [ 26%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/stringprintf.cc.o
      [ 27%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/stringpiece.cc.o
      [ 29%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/structurally_valid.cc.o
      [ 30%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/strutil.cc.o
      [ 32%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/time.cc.o
      [ 33%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/wire_format_lite.cc.o
      [ 35%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/zero_copy_stream.cc.o
      [ 36%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/zero_copy_stream_impl_lite.cc.o
      [ 38%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/protobuf-lite/zero_copy_stream_impl.cc.o
      [ 39%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/builtin_pb/sentencepiece.pb.cc.o
      [ 41%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/builtin_pb/sentencepiece_model.pb.cc.o
      [ 42%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/bpe_model.cc.o
      [ 44%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/error.cc.o
      [ 45%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/char_model.cc.o
      [ 47%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/model_factory.cc.o
      [ 48%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/filesystem.cc.o
      [ 50%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/model_interface.cc.o
      [ 51%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/normalizer.cc.o
      [ 52%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/sentencepiece_processor.cc.o
      [ 55%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/util.cc.o
      [ 55%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/unigram_model.cc.o
      [ 57%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/word_model.cc.o
      [ 58%] Building CXX object _deps/sentencepiece-build/src/CMakeFiles/sentencepiece-static.dir/__/third_party/absl/flags/flag.cc.o
      In file included from /usr/include/string.h:548,
                       from /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/_deps/sentencepiece-src/src/../third_party/protobuf-lite/google/protobuf/stubs/port.h:39,
                       from /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/_deps/sentencepiece-src/src/../third_party/protobuf-lite/google/protobuf/stubs/macros.h:34,
                       from /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/_deps/sentencepiece-src/src/../third_party/protobuf-lite/google/protobuf/stubs/common.h:46,
                       from /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/_deps/sentencepiece-src/src/../third_party/protobuf-lite/google/protobuf/message_lite.h:45,
                       from /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/_deps/sentencepiece-src/third_party/protobuf-lite/message_lite.cc:36:
      In function ‘void* memcpy(void*, const void*, size_t)’,
          inlined from ‘google::protobuf::uint8* google::protobuf::io::EpsCopyOutputStream::WriteRaw(const void*, int, google::protobuf::uint8*)’ at /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/_deps/sentencepiece-src/src/../third_party/protobuf-lite/google/protobuf/io/coded_stream.h:699:16,
          inlined from ‘virtual google::protobuf::uint8* google::protobuf::internal::ImplicitWeakMessage::_InternalSerialize(google::protobuf::uint8*, google::protobuf::io::EpsCopyOutputStream*) const’ at /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/_deps/sentencepiece-src/src/../third_party/protobuf-lite/google/protobuf/implicit_weak_message.h:85:28,
          inlined from ‘bool google::protobuf::MessageLite::SerializePartialToZeroCopyStream(google::protobuf::io::ZeroCopyOutputStream*) const’ at /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/_deps/sentencepiece-src/third_party/protobuf-lite/message_lite.cc:419:30:
      /usr/include/x86_64-linux-gnu/bits/string_fortified.h:29:33: warning: ‘void* __builtin___memcpy_chk(void*, const void*, long unsigned int, long unsigned int)’ specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
         29 |   return __builtin___memcpy_chk (__dest, __src, __len,
            |          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
         30 |                                  __glibc_objsize0 (__dest));
            |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~
      [ 60%] Linking CXX static library libsentencepiece.a
      [ 60%] Built target sentencepiece-static
      [ 61%] Building CXX object src/CMakeFiles/openvino_tokenizers.dir/bpe_tokenizer.cpp.o
      [ 63%] Building CXX object src/CMakeFiles/openvino_tokenizers.dir/case_fold.cpp.o
      [ 64%] Building CXX object src/CMakeFiles/openvino_tokenizers.dir/normalize_unicode.cpp.o
      [ 67%] Building CXX object src/CMakeFiles/openvino_tokenizers.dir/regex_normalization.cpp.o
      [ 67%] Building CXX object src/CMakeFiles/openvino_tokenizers.dir/ov_extension.cpp.o
      [ 69%] Building CXX object src/CMakeFiles/openvino_tokenizers.dir/tensorflow_translators.cpp.o
      [ 70%] Building CXX object src/CMakeFiles/openvino_tokenizers.dir/regex_split.cpp.o
      [ 72%] Building CXX object src/CMakeFiles/openvino_tokenizers.dir/sentence_piece.cpp.o
      [ 73%] Building CXX object src/CMakeFiles/openvino_tokenizers.dir/wordpiece_tokenizer.cpp.o
      [ 75%] Linking CXX shared library libopenvino_tokenizers.so
      [100%] Built target openvino_tokenizers
      CMake Error at .py-build-cmake_cache/cp311-cp311-linux_x86_64/src/cmake_install.cmake:46 (file):
        file INSTALL cannot find
        "/home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64/src/CMakeFiles/CMakeRelink.dir/libopenvino_tokenizers.so":
        No such file or directory.
      Call Stack (most recent call first):
        .py-build-cmake_cache/cp311-cp311-linux_x86_64/cmake_install.cmake:47 (include)

      ERROR:py_build_cmake.common:Subprocess failed
      Traceback (most recent call last):
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/build.py", line 92, in build_wheel
          return self.build_wheel_in_dir(
                 ^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/build.py", line 239, in build_wheel_in_dir
          cmaker.install()
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/commands/cmake.py", line 369, in install
          self.run(cmd, cwd=cwd, check=True, env=env)
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/commands/cmake.py", line 91, in run
          return self.runner.run(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/commands/cmd_runner.py", line 28, in run
          return sp_run(*args, **kwargs)  # noqa: PLW1510
                 ^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/rahul/miniforge3/envs/ov/lib/python3.11/subprocess.py", line 571, in run
          raise CalledProcessError(retcode, process.args,
      subprocess.CalledProcessError: Command '['cmake', '--install', '/home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64', '--prefix', '/tmp/tmp73dbo3mb/staging', '--config', 'Release', '--component', 'openvino_tokenizers', '--strip']' returned non-zero exit status 1.
      Traceback (most recent call last):
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/build.py", line 92, in build_wheel
          return self.build_wheel_in_dir(
                 ^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/build.py", line 239, in build_wheel_in_dir
          cmaker.install()
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/commands/cmake.py", line 369, in install
          self.run(cmd, cwd=cwd, check=True, env=env)
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/commands/cmake.py", line 91, in run
          return self.runner.run(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/commands/cmd_runner.py", line 28, in run
          return sp_run(*args, **kwargs)  # noqa: PLW1510
                 ^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/rahul/miniforge3/envs/ov/lib/python3.11/subprocess.py", line 571, in run
          raise CalledProcessError(retcode, process.args,
      subprocess.CalledProcessError: Command '['cmake', '--install', '/home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64', '--prefix', '/tmp/tmp73dbo3mb/staging', '--config', 'Release', '--component', 'openvino_tokenizers', '--strip']' returned non-zero exit status 1.

      The above exception was the direct cause of the following exception:

      Traceback (most recent call last):
        File "/home/rahul/miniforge3/envs/ov/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/home/rahul/miniforge3/envs/ov/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/rahul/miniforge3/envs/ov/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 152, in prepare_metadata_for_build_wheel
          whl_basename = backend.build_wheel(metadata_directory, config_settings)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/build.py", line 96, in build_wheel
          format_and_rethrow_exception(e)
        File "/tmp/pip-build-env-08mjjq0p/overlay/lib/python3.11/site-packages/py_build_cmake/common/__init__.py", line 203, in format_and_rethrow_exception
          raise FormattedErrorMessage(msg) from e
      py_build_cmake.common.FormattedErrorMessage:

          ❌ CMake install failed:

                  Command '['cmake', '--install', '/home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache/cp311-cp311-linux_x86_64', '--prefix', '/tmp/tmp73dbo3mb/staging', '--config', 'Release', '--component', 'openvino_tokenizers', '--strip']' returned non-zero exit status 1.

          (scroll up for subprocess output)
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.

Any pointers on how to fix this?

Example Pull Requests

No response

Resources

Contact points

rahulunair

Ticket

none

Wovchena commented 1 month ago

The solution to the fist problem is to install nightly OpneVINO, this is the example for ubuntu20, you need to adapt it for ubuntu24: https://github.com/openvinotoolkit/openvino.genai/blob/50941b55d047329118665b5b83c512db6666aef3/.github/workflows/causal_lm_cpp.yml#L16 Apparently you already did it given

I also tried installing the archive file of openivino

I don't have a solution to the second problem because it was never encountered. Try removing /home/rahul/coding/openvino.genai/thirdparty/openvino_tokenizers/.py-build-cmake_cache and running the installation again.

ilya-lavrenov commented 3 weeks ago

With OpenVINO 2024.3 released, we don't need to install nightly package and can use recent released one. It will allow to fix issue with missed header file during compilation.