import os import sys from pathlib import Path from setuptools import find_packages, setup os.environ["CC"] = "g++" os.environ["CXX"] = "g++" common_setup_kwargs = { "version": "0.8.0", "name": "auto_gptq", "author": "PanQiWei", "description": "An easy-to-use LLMs quantization package with user-friendly apis, based on GPTQ algorithm.", "long_description": (Path(__file__).parent / "README.md").read_text(encoding="UTF-8"), "long_description_content_type": "text/markdown", "url": "https://github.com/PanQiWei/AutoGPTQ", "keywords": ["gptq", "quantization", "large-language-models", "transformers"], "platforms": ["windows", "linux"], "classifiers": [ "Environment :: GPU :: NVIDIA CUDA :: 11.7", "Environment :: GPU :: NVIDIA CUDA :: 11.8", "Environment :: GPU :: NVIDIA CUDA :: 12", "License :: OSI Approved :: MIT License", "Natural Language :: Chinese (Simplified)", "Natural Language :: English", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: C++", ] } def get_version_add(): if os.getenv("ROCM_PATH"): rocm_path = os.getenv('ROCM_PATH', "") rocm_version_path = os.path.join(rocm_path, '.info', "rocm_version") with open(rocm_version_path, 'r',encoding='utf-8') as file: lines = file.readlines() #rocm_version=lines[0][:-2].replace(".", "") rocm_version=lines[0][:].replace(".", "") common_setup_kwargs['version'] += "+dtk" + rocm_version get_version_add() PYPI_RELEASE = os.environ.get('PYPI_RELEASE', None) BUILD_CUDA_EXT = int(os.environ.get('BUILD_CUDA_EXT', '1')) == 1 DISABLE_QIGEN = int(os.environ.get('DISABLE_QIGEN', '1')) == 1 COMPILE_MARLIN = int(os.environ.get('COMPILE_MARLIN', '1')) == 1 UNSUPPORTED_COMPUTE_CAPABILITIES = ['3.5', '3.7', '5.0', '5.2', '5.3'] requirements = [ "torch>=2.0.1", "accelerate>=0.26.0", "datasets", "sentencepiece", "numpy", "rouge", "gekko", "torch>=1.13.0", "safetensors", "transformers>=4.31.0", "peft>=0.5.0", "tqdm", "threadpoolctl", ] extras_require = { "triton": ["triton==2.0.0"], "test": ["pytest", "parameterized"], "quality": ["ruff==0.1.5"], } include_dirs = ["autogptq_cuda"] additional_setup_kwargs = {} if BUILD_CUDA_EXT: from torch.utils import cpp_extension extensions = [] extra_link_args = [] extensions.append( cpp_extension.CUDAExtension( "exllamav2_kernels", [ "autogptq_extension/exllamav2/ext_hip.cpp", "autogptq_extension/exllamav2/hip/q_matrix.hip", "autogptq_extension/exllamav2/hip/q_gemm.hip", ], extra_link_args=extra_link_args ) ) additional_setup_kwargs = { "ext_modules": extensions, "cmdclass": {'build_ext': cpp_extension.BuildExtension} } common_setup_kwargs.update(additional_setup_kwargs) setup( packages=find_packages(), install_requires=requirements, extras_require=extras_require, include_dirs=include_dirs, python_requires=">=3.8.0", **common_setup_kwargs )