mirror of
https://github.com/jamiepine/voicebox.git
synced 2026-10-03 09:05:17 -07:00
Fix Linux release build exceeding 4GB PyInstaller limit
Install CPU-only PyTorch on Linux and exclude nvidia modules from non-CUDA PyInstaller builds.
This commit is contained in:
@@ -61,17 +61,16 @@ jobs:
|
|||||||
pip install pyinstaller
|
pip install pyinstaller
|
||||||
pip install -r backend/requirements.txt
|
pip install -r backend/requirements.txt
|
||||||
|
|
||||||
|
- name: Install CPU-only PyTorch (Linux)
|
||||||
|
if: matrix.platform == 'ubuntu-22.04'
|
||||||
|
run: |
|
||||||
|
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cpu --force-reinstall --no-deps
|
||||||
|
|
||||||
- name: Install MLX dependencies (Apple Silicon only)
|
- name: Install MLX dependencies (Apple Silicon only)
|
||||||
if: matrix.backend == 'mlx'
|
if: matrix.backend == 'mlx'
|
||||||
run: |
|
run: |
|
||||||
pip install -r backend/requirements-mlx.txt
|
pip install -r backend/requirements-mlx.txt
|
||||||
|
|
||||||
# - name: Install PyTorch with CUDA (Windows only)
|
|
||||||
# if: matrix.platform == 'windows-latest'
|
|
||||||
# run: |
|
|
||||||
# pip install torch --index-url https://download.pytorch.org/whl/cu121 --force-reinstall --no-deps
|
|
||||||
# pip install torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
|
|
||||||
|
|
||||||
- name: Build Python server (Linux/macOS)
|
- name: Build Python server (Linux/macOS)
|
||||||
if: matrix.platform != 'windows-latest'
|
if: matrix.platform != 'windows-latest'
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -90,6 +90,18 @@ def build_server(cuda=False):
|
|||||||
'--hidden-import', 'torch.cuda',
|
'--hidden-import', 'torch.cuda',
|
||||||
'--hidden-import', 'torch.backends.cudnn',
|
'--hidden-import', 'torch.backends.cudnn',
|
||||||
])
|
])
|
||||||
|
else:
|
||||||
|
# Exclude NVIDIA CUDA packages from CPU-only builds to keep binary under 4GB.
|
||||||
|
# On Linux, pip may pull CUDA-enabled PyTorch by default which includes ~3GB
|
||||||
|
# of NVIDIA shared libraries that PyInstaller would bundle.
|
||||||
|
nvidia_packages = [
|
||||||
|
'nvidia', 'nvidia.cublas', 'nvidia.cuda_cupti', 'nvidia.cuda_nvrtc',
|
||||||
|
'nvidia.cuda_runtime', 'nvidia.cudnn', 'nvidia.cufft', 'nvidia.curand',
|
||||||
|
'nvidia.cusolver', 'nvidia.cusparse', 'nvidia.nccl', 'nvidia.nvjitlink',
|
||||||
|
'nvidia.nvtx',
|
||||||
|
]
|
||||||
|
for pkg in nvidia_packages:
|
||||||
|
args.extend(['--exclude-module', pkg])
|
||||||
|
|
||||||
# Add MLX-specific imports if building on Apple Silicon (never for CUDA builds)
|
# Add MLX-specific imports if building on Apple Silicon (never for CUDA builds)
|
||||||
if is_apple_silicon() and not cuda:
|
if is_apple_silicon() and not cuda:
|
||||||
|
|||||||
Reference in New Issue
Block a user