microsoft / microsoft/VPTQ

compiling main with ROCm 7.2 fails

Open
#204 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
681
Forks
53
PR merge metrics
No merged PRs in 30d

Description

Attaching the full Dockerfile too which reproduces the issue.

Dockerfile.txt

$ uv pip install --break-system-packages --no-cache --no-build-isolation --no-binary=vptq     git+https://github.com/microsoft/VPTQ.git
Using Python 3.13.12 environment at: /opt/venv
Resolved 88 packages in 1.95s
   Updating https://github.com/microsoft/VPTQ.git (HEAD)
Downloading pydantic-core (2.0MiB)
Downloading pyarrow (45.4MiB)
Downloading plotly (14.5MiB)
Downloading scikit-learn (8.5MiB)
Downloading tokenizers (3.1MiB)
Downloading transformers (10.2MiB)
Downloading gradio (41.0MiB)
Downloading brotli (1.4MiB)
Downloading aiohttp (1.7MiB)
Downloading hf-xet (4.0MiB)
 Downloaded brotli
 Downloaded aiohttp
 Downloaded pydantic-core
 Downloaded tokenizers
 Downloaded hf-xet
 Downloaded scikit-learn
 Downloaded transformers
 Downloaded plotly
 Downloaded gradio
 Downloaded pyarrow
    Updated https://github.com/microsoft/VPTQ.git (942c3151026c26a5fae62807c65c630ff19e3893)
   Building vptq @ git+https://github.com/microsoft/VPTQ.git@942c3151026c26a5fae62807c65c630ff19e3893
  × Failed to build `vptq @
  │ git+https://github.com/microsoft/VPTQ.git@942c3151026c26a5fae62807c65c630ff19e3893`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)

      [stdout]
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-313/vptq
      copying vptq/__main__.py -> build/lib.linux-x86_64-cpython-313/vptq
      copying vptq/__init__.py -> build/lib.linux-x86_64-cpython-313/vptq
      copying vptq/app.py -> build/lib.linux-x86_64-cpython-313/vptq
      copying vptq/app_utils.py -> build/lib.linux-x86_64-cpython-313/vptq
      copying vptq/app_gpu.py -> build/lib.linux-x86_64-cpython-313/vptq
      running egg_info
      creating vptq.egg-info
      writing vptq.egg-info/PKG-INFO
      writing dependency_links to vptq.egg-info/dependency_links.txt
      writing requirements to vptq.egg-info/requires.txt
      writing top-level names to vptq.egg-info/top_level.txt
      writing manifest file 'vptq.egg-info/SOURCES.txt'
      reading manifest file 'vptq.egg-info/SOURCES.txt'
      adding license file 'LICENSE'
      writing manifest file 'vptq.egg-info/SOURCES.txt'
      creating build/lib.linux-x86_64-cpython-313/vptq/layers
      copying vptq/layers/__init__.py ->
      build/lib.linux-x86_64-cpython-313/vptq/layers
      copying vptq/layers/model_base.py ->
      build/lib.linux-x86_64-cpython-313/vptq/layers
      copying vptq/layers/utils.py ->
      build/lib.linux-x86_64-cpython-313/vptq/layers
      copying vptq/layers/vqlinear.py ->
      build/lib.linux-x86_64-cpython-313/vptq/layers
      creating build/lib.linux-x86_64-cpython-313/vptq/ops
      copying vptq/ops/__init__.py ->
      build/lib.linux-x86_64-cpython-313/vptq/ops
      copying vptq/ops/quant_gemm.py ->
      build/lib.linux-x86_64-cpython-313/vptq/ops
      creating build/lib.linux-x86_64-cpython-313/vptq/tools
      copying vptq/tools/__init__.py ->
      build/lib.linux-x86_64-cpython-313/vptq/tools
      copying vptq/tools/pre_process.py ->
      build/lib.linux-x86_64-cpython-313/vptq/tools
      creating build/lib.linux-x86_64-cpython-313/vptq/tools/hessian
      copying vptq/tools/hessian/__init__.py ->
      build/lib.linux-x86_64-cpython-313/vptq/tools/hessian
      creating build/lib.linux-x86_64-cpython-313/vptq/utils
      copying vptq/utils/__init__.py ->
      build/lib.linux-x86_64-cpython-313/vptq/utils
      copying vptq/utils/pack.py ->
      build/lib.linux-x86_64-cpython-313/vptq/utils
      copying vptq/__main__.py -> build/lib.linux-x86_64-cpython-313/vptq
      copying vptq/__init__.py -> build/lib.linux-x86_64-cpython-313/vptq
      copying vptq/app.py -> build/lib.linux-x86_64-cpython-313/vptq
      copying vptq/app_utils.py -> build/lib.linux-x86_64-cpython-313/vptq
      copying vptq/app_gpu.py -> build/lib.linux-x86_64-cpython-313/vptq
      running build_ext

      [stderr]
      /opt/venv/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:61:
      SetuptoolsDeprecationWarning: License classifiers are deprecated.
      !!

      
      ********************************************************************************
              Please consider removing the following classifiers in favor of a
      SPDX license expression:

              License :: OSI Approved :: MIT License

              See
      https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
      for details.
      
      ********************************************************************************

      !!
        dist._finalize_license_expression()
      /opt/venv/lib/python3.13/site-packages/setuptools/dist.py:765:
      SetuptoolsDeprecationWarning: License classifiers are deprecated.
      !!

      
      ********************************************************************************
              Please consider removing the following classifiers in favor of a
      SPDX license expression:

              License :: OSI Approved :: MIT License

              See
      https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
      for details.
      
      ********************************************************************************

      !!
        self._finalize_license_expression()
      /opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
      _Warning: Package 'vptq.layers' is absent from the `packages`
      configuration.
      !!

      
      ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'vptq.layers' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration.

              This leads to an ambiguous overall configuration. If you want to
      distribute this
              package, please make sure that 'vptq.layers' is explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery
      methods
              (for example by using
      `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools
      documentation page:

              -
      https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'vptq.layers' to be distributed and are
              already explicitly excluding 'vptq.layers' via
              `find_namespace_packages(...)/find_namespace` or
      `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or
      `include-package-data=False` in
              combination with a more fine grained `package-data`
      configuration.

              You can read more about "package data files" on setuptools
      documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


              [^1]: For Python, any directory (with suitable naming) can be
      imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of
      package data
                    directory, all directories are treated like packages.
      
      ********************************************************************************

      !!
        check.warn(importable)
      /opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
      _Warning: Package 'vptq.ops' is absent from the `packages`
      configuration.
      !!

      
      ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'vptq.ops' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration.

              This leads to an ambiguous overall configuration. If you want to
      distribute this
              package, please make sure that 'vptq.ops' is explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery
      methods
              (for example by using
      `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools
      documentation page:

              -
      https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'vptq.ops' to be distributed and are
              already explicitly excluding 'vptq.ops' via
              `find_namespace_packages(...)/find_namespace` or
      `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or
      `include-package-data=False` in
              combination with a more fine grained `package-data`
      configuration.

              You can read more about "package data files" on setuptools
      documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


              [^1]: For Python, any directory (with suitable naming) can be
      imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of
      package data
                    directory, all directories are treated like packages.
      
      ********************************************************************************

      !!
        check.warn(importable)
      /opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
      _Warning: Package 'vptq.tools' is absent from the `packages`
      configuration.
      !!

      
      ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'vptq.tools' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration.

              This leads to an ambiguous overall configuration. If you want to
      distribute this
              package, please make sure that 'vptq.tools' is explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery
      methods
              (for example by using
      `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools
      documentation page:

              -
      https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'vptq.tools' to be distributed and are
              already explicitly excluding 'vptq.tools' via
              `find_namespace_packages(...)/find_namespace` or
      `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or
      `include-package-data=False` in
              combination with a more fine grained `package-data`
      configuration.

              You can read more about "package data files" on setuptools
      documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


              [^1]: For Python, any directory (with suitable naming) can be
      imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of
      package data
                    directory, all directories are treated like packages.
      
      ********************************************************************************

      !!
        check.warn(importable)
      /opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
      _Warning: Package 'vptq.tools.hessian' is absent from the `packages`
      configuration.
      !!

      
      ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'vptq.tools.hessian' as an importable
      package[^1],
              but it is absent from setuptools' `packages` configuration.

              This leads to an ambiguous overall configuration. If you want to
      distribute this
              package, please make sure that 'vptq.tools.hessian' is
      explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery
      methods
              (for example by using
      `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools
      documentation page:

              -
      https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'vptq.tools.hessian' to be distributed and are
              already explicitly excluding 'vptq.tools.hessian' via
              `find_namespace_packages(...)/find_namespace` or
      `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or
      `include-package-data=False` in
              combination with a more fine grained `package-data`
      configuration.

              You can read more about "package data files" on setuptools
      documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


              [^1]: For Python, any directory (with suitable naming) can be
      imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of
      package data
                    directory, all directories are treated like packages.
      
      ********************************************************************************

      !!
        check.warn(importable)
      /opt/venv/lib/python3.13/site-packages/setuptools/command/build_py.py:215:
      _Warning: Package 'vptq.utils' is absent from the `packages`
      configuration.
      !!

      
      ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'vptq.utils' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration.

              This leads to an ambiguous overall configuration. If you want to
      distribute this
              package, please make sure that 'vptq.utils' is explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery
      methods
              (for example by using
      `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools
      documentation page:

              -
      https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'vptq.utils' to be distributed and are
              already explicitly excluding 'vptq.utils' via
              `find_namespace_packages(...)/find_namespace` or
      `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or
      `include-package-data=False` in
              combination with a more fine grained `package-data`
      configuration.

              You can read more about "package data files" on setuptools
      documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


              [^1]: For Python, any directory (with suitable naming) can be
      imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of
      package data
                    directory, all directories are treated like packages.
      
      ********************************************************************************

      !!
        check.warn(importable)
      Traceback (most recent call last):
        File "<string>", line 11, in <module>
          wheel_filename =
      backend.build_wheel("/tmp/.tmpZKeS5c/builds-v0/.tmpGDsIXe", {}, None)
        File "/opt/venv/lib/python3.13/site-packages/setuptools/build_meta.py",
      line 438, in build_wheel
          return _build(['bdist_wheel'])
        File "/opt/venv/lib/python3.13/site-packages/setuptools/build_meta.py",
      line 429, in _build
          return self._build_with_temp_dir(
                 ~~~~~~~~~~~~~~~~~~~~~~~~~^
              cmd,
              ^^^^
          ...<3 lines>...
              self._arbitrary_args(config_settings),
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          )
          ^
        File "/opt/venv/lib/python3.13/site-packages/setuptools/build_meta.py",
      line 410, in _build_with_temp_dir
          self.run_setup()
          ~~~~~~~~~~~~~~^^
        File "/opt/venv/lib/python3.13/site-packages/setuptools/build_meta.py",
      line 317, in run_setup
          exec(code, locals())
          ~~~~^^^^^^^^^^^^^^^^
        File "<string>", line 286, in <module>
        File "/opt/venv/lib/python3.13/site-packages/setuptools/__init__.py",
      line 117, in setup
          return distutils.core.setup(**attrs)  # type: ignore[return-value]
                 ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/core.py",
      line 186, in setup
          return run_commands(dist)
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/core.py",
      line 202, in run_commands
          dist.run_commands()
          ~~~~~~~~~~~~~~~~~^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py",
      line 1000, in run_commands
          self.run_command(cmd)
          ~~~~~~~~~~~~~~~~^^^^^
        File "/opt/venv/lib/python3.13/site-packages/setuptools/dist.py", line
      1107, in run_command
          super().run_command(command)
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py",
      line 1019, in run_command
          cmd_obj.run()
          ~~~~~~~~~~~^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/command/bdist_wheel.py",
      line 370, in run
          self.run_command("build")
          ~~~~~~~~~~~~~~~~^^^^^^^^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/cmd.py",
      line 341, in run_command
          self.distribution.run_command(command)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/opt/venv/lib/python3.13/site-packages/setuptools/dist.py", line
      1107, in run_command
          super().run_command(command)
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py",
      line 1019, in run_command
          cmd_obj.run()
          ~~~~~~~~~~~^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/command/build.py",
      line 135, in run
          self.run_command(cmd_name)
          ~~~~~~~~~~~~~~~~^^^^^^^^^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/cmd.py",
      line 341, in run_command
          self.distribution.run_command(command)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/opt/venv/lib/python3.13/site-packages/setuptools/dist.py", line
      1107, in run_command
          super().run_command(command)
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/dist.py",
      line 1019, in run_command
          cmd_obj.run()
          ~~~~~~~~~~~^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/command/build_ext.py",
      line 97, in run
          _build_ext.run(self)
          ~~~~~~~~~~~~~~^^^^^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py",
      line 367, in run
          self.build_extensions()
          ~~~~~~~~~~~~~~~~~~~~~^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py",
      line 483, in build_extensions
          self._build_extensions_serial()
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
        File
      "/opt/venv/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py",
      line 509, in _build_extensions_serial
          self.build_extension(ext)
          ~~~~~~~~~~~~~~~~~~~~^^^^^
        File "<string>", line 123, in build_extension
        File "<string>", line 41, in nvcc_threads
        File "<string>", line 31, in get_cuda_bare_metal_version
      TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the attached Dockerfile and reproduce the uv pip installation in the Python 3.13 environment using ROCm 7.2. Read the build_ext stage and the reported compiler output first; done means the VPTQ package builds successfully in that environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python
Domain
build-system, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.