intel / neural-speed

An innovative library for efficient LLM inference via low-bit quantization
https://github.com/intel/neural-speed
Apache License 2.0
318 stars 33 forks source link

source build from release tar file? #258

Open hpcpony opened 1 month ago

hpcpony commented 1 month ago

I'd really like to build from source using one of the release tar files, but I'm having issues. Anybody know of any magic to make it possible? If you can't build from the release files, what purpose do the serve?

(nspeed) [host1:neural-speed-1.0] pip install -r requirements.txt
  .
  .
  .
(nspeed) [host1:neural-speed-1.0] pip install .
Processing /scr/nspeed/neural-speed-1.0
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [46 lines of output]
      /opt/pytorch-2.3.0/envs/nspeed/lib/python3.11/site-packages/setuptools/__init__.py:81: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
      !!

              ********************************************************************************
              Requirements should be satisfied by a PEP 517 installer.
              If you are using pip, you can try `pip install --use-pep517`.
              ********************************************************************************

      !!
        dist.fetch_build_eggs(dist.setup_requires)
      WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
      Traceback (most recent call last):
        File "/scr/nspeed/neural-speed-1.0/.eggs/setuptools_scm-8.1.0-py3.11.egg/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
          section = defn.get("tool", {})[tool_name]
                    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
      KeyError: 'setuptools_scm'
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/scr/nspeed/neural-speed-1.0/setup.py", line 232, in <module>
          setup(
        File "/opt/pytorch-2.3.0/envs/nspeed/lib/python3.11/site-packages/setuptools/__init__.py", line 104, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/pytorch-2.3.0/envs/nspeed/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 146, in setup
          _setup_distribution = dist = klass(attrs)
                                       ^^^^^^^^^^^^
        File "/opt/pytorch-2.3.0/envs/nspeed/lib/python3.11/site-packages/setuptools/dist.py", line 307, in __init__
          _Distribution.__init__(self, dist_attrs)
        File "/opt/pytorch-2.3.0/envs/nspeed/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 284, in __init__
          self.finalize_options()
        File "/opt/pytorch-2.3.0/envs/nspeed/lib/python3.11/site-packages/setuptools/dist.py", line 658, in finalize_options
          ep(self)
        File "/opt/pytorch-2.3.0/envs/nspeed/lib/python3.11/site-packages/setuptools/dist.py", line 678, in _finalize_setup_keywords
          ep.load()(self, ep.name, value)
        File "/scr/nspeed/neural-speed-1.0/.eggs/setuptools_scm-8.1.0-py3.11.egg/setuptools_scm/_integration/setuptools.py", line 103, in version_keyword
          _assign_version(dist, config)
        File "/scr/nspeed/neural-speed-1.0/.eggs/setuptools_scm-8.1.0-py3.11.egg/setuptools_scm/_integration/setuptools.py", line 58, in _assign_version
          _version_missing(config)
        File "/scr/nspeed/neural-speed-1.0/.eggs/setuptools_scm-8.1.0-py3.11.egg/setuptools_scm/_get_version_impl.py", line 117, in _version_missing
          raise LookupError(
      LookupError: setuptools-scm was unable to detect version for /scr/nspeed/neural-speed-1.0.

      Make sure you're either building from a fully intact git repository or PyPI tarballs. Most other sources (such as GitHub's tarballs, a git checkout without the .git folder) don't contain the necessary metadata and will not work.

      For example, if you're using pip, instead of https://github.com/user/proj/archive/master.zip use git+https://github.com/user/proj.git#egg=proj
      [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.
hint: See above for details.

I did try the PEP 517 suggestion but then it started complaining about "ModuleNotFoundError: No module named 'cmake'" which I'm sure it there. I think the stuff at the end about git repositories is probably more relevant. I could not figure out how to work the "git+https://github.com/user/proj.git#egg=proj" suggestion.

zhentaoyu commented 1 month ago

Hi, @hpcpony, sorry for that. The reason seems like the archive v1.0 tar is not a git repo. The release tar files are generated by GitHub automatically and we will investigate how to build from these release files. For a temporary solution, I suggest you use git clone && git checkout ways to get the v1.0 repo and build it from source (requires GCC > 10+). Thanks.