ROCm support

This commit is contained in:
doctorpangloss 2025-09-24 11:01:29 -07:00 committed by Benjamin Berman
parent 85474cee78
commit 3de77f6e24
3 changed files with 29 additions and 23 deletions

View File

@ -79,33 +79,39 @@ jobs:
friendly_name: "Python 3.12 ROCm 7.0 Torch 2.7.1" friendly_name: "Python 3.12 ROCm 7.0 Torch 2.7.1"
container: "rocm/pytorch:rocm7.0_ubuntu24.04_py3.12_pytorch_release_2.7.1" container: "rocm/pytorch:rocm7.0_ubuntu24.04_py3.12_pytorch_release_2.7.1"
steps: steps:
- run: |
apt-get update
# required for opencv
apt-get install --no-install-recommends -y ffmpeg libsm6 libxext6
name: Prepare Python
- run: | - run: |
curl -LsSf https://astral.sh/uv/install.sh | sh curl -LsSf https://astral.sh/uv/install.sh | sh
name: Install uv name: Install uv
- name: Align ROCm to Image
run: |
# our testing infrastructure uses RX 7XXX GPUs, this includes express support for gfx1102, gfx1101 which will resolve crashes
export UV_PRERELEASE=allow
uv pip install --index-url https://rocm.nightlies.amd.com/v2/gfx110X-dgpu/ "rocm[libraries]<7.9" "torch==2.7.1+rocm7.0.0rc20250922" "torchaudio==2.7.1a0+rocm7.0.0rc20250922" "torchvision==0.22.1+rocm7.0.0rc20250922" "pytorch_triton_rocm" --pre
- uses: actions/checkout@v4 - uses: actions/checkout@v4
name: Checkout git repo name: Checkout git repo
with:
path: src
- run: |
apt install libsndfile1 -y --no-install-recommends
name: sndfile Dependency
- name: Write Overrides
run: |
echo ${GITHUB_WORKSPACE}
touch overrides.txt
uv pip freeze | grep -E 'torch|rocm|numpy|opencv' >> overrides.txt
echo "sentry-sdk; python_version < '0'" >> overrides.txt
- name: Install ComfyUI - name: Install ComfyUI
run: | run: |
export UV_BREAK_SYSTEM_PACKAGES=true export UV_PRERELEASE=allow
export UV_SYSTEM_PYTHON=true
pip freeze | grep nvidia >> overrides.txt; pip freeze | grep torch >> overrides.txt; pip freeze | grep opencv >> overrides.txt; pip freeze | grep numpy >> overrides.txt; echo "sentry-sdk; python_version < '0'" >> overrides.txt
export UV_OVERRIDE=overrides.txt export UV_OVERRIDE=overrides.txt
export UV_TORCH_BACKEND=auto uv pip install "comfyui[rocm,dev]@${GITHUB_WORKSPACE}/src"
# our testing infrastructure uses RX 7600, this includes express support for gfx1102
uv pip install --no-deps --index-url https://rocm.nightlies.amd.com/v2/gfx110X-dgpu/ "rocm[libraries,devel]"
uv pip install --torch-backend=auto ".[rocm]"
- name: Lint for errors - name: Lint for errors
run: | run: |
cd ${GITHUB_WORKSPACE}/src
pylint --rcfile=.pylintrc comfy/ comfy_extras/ comfy_api/ comfy_api_nodes/ pylint --rcfile=.pylintrc comfy/ comfy_extras/ comfy_api/ comfy_api_nodes/
- name: Run unit tests - name: Run unit tests
run: | run: |
cd ${GITHUB_WORKSPACE}/src
pytest -v tests/unit pytest -v tests/unit
build_and_execute_macos: build_and_execute_macos:
environment: "Testing" environment: "Testing"

View File

@ -4,8 +4,6 @@ ENV TZ="Etc/UTC"
ENV UV_COMPILE_BYTECODE=1 ENV UV_COMPILE_BYTECODE=1
ENV UV_NO_CACHE=1 ENV UV_NO_CACHE=1
ENV UV_SYSTEM_PYTHON=1
ENV UV_BREAK_SYSTEM_PACKAGES=1
ENV PIP_DISABLE_PIP_VERSION_CHECK=1 ENV PIP_DISABLE_PIP_VERSION_CHECK=1
ENV PIP_NO_CACHE_DIR=1 ENV PIP_NO_CACHE_DIR=1
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
@ -13,15 +11,15 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=C.UTF-8 ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8 ENV LC_ALL=C.UTF-8
RUN pip freeze | grep nvidia >> /overrides.txt; pip freeze | grep torch >> /overrides.txt; pip freeze | grep opencv >> /overrides.txt; pip freeze | grep numpy >> /overrides.txt; echo "sentry-sdk; python_version < '0'" >> /overrides.txt RUN uv pip freeze | grep torch >> /overrides.txt; uv pip freeze | grep opencv >> /overrides.txt; uv pip freeze | grep numpy >> /overrides.txt; uv pip freeze | grep rocm >> /overrides.txt; echo "sentry-sdk; python_version < '0'" >> /overrides.txt
ENV UV_OVERRIDE=/overrides.txt ENV UV_OVERRIDE=/overrides.txt
ENV UV_TORCH_BACKEND=auto env UV_PRERELEASE=allow
# mitigates AttributeError: module 'cv2.dnn' has no attribute 'DictValue' \ # mitigates AttributeError: module 'cv2.dnn' has no attribute 'DictValue' \
# see https://github.com/facebookresearch/nougat/issues/40 # see https://github.com/facebookresearch/nougat/issues/40
RUN apt-get update && \ RUN apt-get update && \
apt-get install --no-install-recommends -y ffmpeg libsm6 libxext6 && \ apt-get install --no-install-recommends -y ffmpeg libsm6 libxext6 libsndfile1 && \
pip install uv && uv --version && \ pip install uv && uv --version && \
apt-get purge -y && \ apt-get purge -y && \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*
@ -42,7 +40,7 @@ RUN uv pip install $SOURCES
WORKDIR /workspace WORKDIR /workspace
# addresses https://github.com/pytorch/pytorch/issues/104801 # addresses https://github.com/pytorch/pytorch/issues/104801
# and issues reported by importing nodes_canny # and issues reported by importing nodes_canny
RUN comfyui --quick-test-for-ci --cpu --cwd /workspace RUN python -c "import torch; import transformers; from transformers import AutoProcessor, BatchFeature; import torchaudio; import cv2" && comfyui --quick-test-for-ci --cpu --cwd /workspace
EXPOSE 8188 EXPOSE 8188
CMD ["python", "-m", "comfy.cmd.main", "--listen"] CMD ["python", "-m", "comfy.cmd.main", "--listen"]

View File

@ -27,7 +27,7 @@ dependencies = [
"torchsde>=0.2.6", "torchsde>=0.2.6",
"einops>=0.6.0", "einops>=0.6.0",
"open-clip-torch>=2.24.0", "open-clip-torch>=2.24.0",
"transformers!=4.53.0,!=4.53.1,!=4.53.2", "transformers>=4.46.0,!=4.53.0,!=4.53.1,!=4.53.2",
"tokenizers>=0.13.3", "tokenizers>=0.13.3",
"sentencepiece", "sentencepiece",
"peft>=0.10.0", "peft>=0.10.0",
@ -161,7 +161,8 @@ cu128 = [
rocm = [ rocm = [
"torch", "torch",
"torchvision", "torchvision",
"pytorch-triton-rocm" "pytorch-triton-rocm",
"rocm[libraries,devel]",
] ]
mps = [ mps = [
@ -204,6 +205,7 @@ no-build-isolation-package = [
"sage-attention", "sage-attention",
"flash_attn", "flash_attn",
] ]
prerelease = "allow"
[[tool.uv.index]] [[tool.uv.index]]
name = "pytorch-cpu" name = "pytorch-cpu"
@ -224,7 +226,7 @@ explicit = true
name = "pytorch-rocm" name = "pytorch-rocm"
url = "https://repo.radeon.com/rocm/manylinux/rocm-rel-7.0/" url = "https://repo.radeon.com/rocm/manylinux/rocm-rel-7.0/"
format = "flat" format = "flat"
explicit = true explicit = false
[[tool.uv.index]] [[tool.uv.index]]
name = "pytorch-nightly-cpu" name = "pytorch-nightly-cpu"