Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

platform-specific requirements #218

Merged
merged 3 commits into from
Mar 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ package-api-twine:
cache:
key:
files:
- api/dev-requirements.txt
- api/requirements/dev.txt
paths:
- .cache/pip
policy: pull-push
Expand Down
19 changes: 16 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,13 +172,26 @@ Update pip itself:

### Install pip packages

You can install of the necessary packages at once using [the `requirements.txt` file](./api/requirements.txt):
You can install all of the necessary packages at once using [the `requirements/base.txt` file](./api/requirements/base.txt)
and the `requirements/` file for your platform:

```shell
> pip install -r requirements.txt
> pip install -r requirements/base.txt -r requirements/amd-linux.txt
# or
> pip install -r requirements/base.txt -r requirements/amd-windows.txt
# or
> pip install -r requirements/base.txt -r requirements/amd-windows-nightly.txt
# or
> pip install -r requirements/base.txt -r requirements/cpu.txt
# or
> pip install -r requirements/base.txt -r requirements/nvidia.txt
```

_Or_ you can install them manually using pip:
Only install one of the platform-specific requirements files, otherwise you may end up with the wrong version of
PyTorch or the ONNX runtime. The ONNX runtime nightly packages used by `amd-windows-nightly.txt` can be substantially
faster than the latest release, but may not always be stable.

If you prefer, you can install all of the packages manually using pip:

```shell
> pip install "numpy>=1.20,<1.24"
Expand Down
6 changes: 2 additions & 4 deletions api/Containerfile.cpu.buster
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,9 @@ ENV PATH="/onnx-web/api/onnx_env/bin:$PATH"

RUN pip3 install pip --upgrade

RUN pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/cpu --no-cache-dir --ignore-installed
COPY requirements/ /onnx-web/api/requirements/

COPY requirements.txt /onnx-web/api/requirements.txt

RUN pip3 install -r requirements.txt --no-cache-dir
RUN pip3 install -r requirements/base.txt -r requirements/cpu.txt --no-cache-dir

COPY onnx_web/ /onnx-web/api/onnx_web/

Expand Down
8 changes: 2 additions & 6 deletions api/Containerfile.cuda.ubuntu
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,9 @@ ENV PATH="/onnx-web/api/onnx_env/bin:$PATH"

RUN pip3 install pip --upgrade

RUN pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu117 --no-cache-dir --ignore-installed
COPY requirements/ /onnx-web/api/requirements/

COPY requirements.txt /onnx-web/api/requirements.txt

RUN pip3 install -r requirements.txt --no-cache-dir

RUN pip3 install onnxruntime-gpu --no-cache-dir
RUN pip3 install -r requirements/base.txt -r requirements/nvidia.txt --no-cache-dir

COPY onnx_web/ /onnx-web/api/onnx_web/

Expand Down
10 changes: 2 additions & 8 deletions api/Containerfile.directml.buster
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,9 @@ ENV PATH="/onnx-web/api/onnx_env/bin:$PATH"

RUN pip3 install pip --upgrade

RUN pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/cpu --no-cache-dir --ignore-installed
COPY requirements/ /onnx-web/api/requirements/

RUN pip3 install onnxruntime-directml --force-reinstall

RUN pip3 install --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/pypi/simple/ ort-nightly-directml --force-reinstall

COPY requirements.txt /onnx-web/api/requirements.txt

RUN pip3 install -r requirements.txt --no-cache-dir
RUN pip3 install -r requirements/base.txt -r requirements/amd-windows-nightly.txt --no-cache-dir

COPY onnx_web/ /onnx-web/api/onnx_web/

Expand Down
10 changes: 2 additions & 8 deletions api/Containerfile.rocm.ubuntu
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,9 @@ ENV PATH="/onnx-web/api/onnx_env/bin:$PATH"

RUN pip3 install pip --upgrade

COPY requirements.txt /onnx-web/api/requirements.txt
COPY requirements/ /onnx-web/api/requirements/

RUN pip3 install -r requirements.txt --no-cache-dir

WORKDIR /ort

RUN wget https://download.onnxruntime.ai/onnxruntime_training-1.14.0.dev20230123001%2Brocm54-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

RUN pip3 install /ort/*.whl --ignore-installed
RUN pip3 install -r requirements/base.txt -r requirements/amd-linux.txt --no-cache-dir

WORKDIR /onnx-web/api

Expand Down
2 changes: 1 addition & 1 deletion api/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ pip: check-venv
pip install -r requirements.txt

pip-dev: check-venv
pip install -r dev-requirements.txt
pip install -r requirements/dev.txt

test:
python -m coverage run -m unittest discover -s tests/
Expand Down
4 changes: 4 additions & 0 deletions api/requirements/amd-linux.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
--extra-index-url https://download.pytorch.org/whl/rocm5.2
torch
torchvision
onnxruntime
5 changes: 5 additions & 0 deletions api/requirements/amd-windows-nightly.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
--extra-index-url https://download.pytorch.org/whl/cpu
torch
torchvision
--extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/pypi/simple/
ort-nightly-directml
4 changes: 4 additions & 0 deletions api/requirements/amd-windows.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
--extra-index-url https://download.pytorch.org/whl/cpu
torch
torchvision
onnxruntime-directml
26 changes: 26 additions & 0 deletions api/requirements/base.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
### Specific versions ###
numpy>=1.20,<1.24
protobuf<4,>=3.20.2

### AI packages ###
accelerate
diffusers
onnx
# onnxruntime has many platform-specific packages
safetensors
transformers

#### Upscaling and face correction
basicsr
codeformer-perceptor
facexlib
gfpgan
realesrgan

### Server packages ###
boto3
flask
flask-cors
jsonschema
pyyaml
setproctitle
3 changes: 3 additions & 0 deletions api/requirements/cpu.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
--extra-index-url https://download.pytorch.org/whl/cpu
torch
torchvision
File renamed without changes.
4 changes: 4 additions & 0 deletions api/requirements/nvidia.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
--extra-index-url https://download.pytorch.org/whl/cu117
torch
torchvision
onnxruntime-gpu