example-submission / makefile
cc-dsri's picture
Add GPU Dockerfile and requirements
f0d7b8f
raw
history blame
1.95 kB
VENV ?= venv
PYTHON ?= $(VENV)/bin/python3
UVICORN ?= $(VENV)/bin/uvicorn
DOCKER ?= docker
IMAGE ?= safe-challenge-2025/example-submission
GID ?= $(shell id -g)
UID ?= $(shell id -u)
.PHONY: setup
setup: $(VENV)/requirements.cpu.txt
.PHONY: download
download:
bash scripts/model_download.bash
.PHONY: serve
serve:
$(UVICORN) main:app
.PHONY: docker-build
docker-build:
docker build -t $(IMAGE) .
.PHONY: docker-run
docker-run:
docker run --rm -it -p 8000:8000 $(IMAGE)
.PHONY: compile
compile:
uv pip compile --python-version 3.12 --upgrade -o requirements.torch.cpu.txt.tmp requirements.torch.cpu.in
echo "--index-url https://download.pytorch.org/whl/cpu" > requirements.torch.cpu.txt
grep -e '^torch' requirements.torch.cpu.txt.tmp >> requirements.torch.cpu.txt
uv pip compile --python-version 3.12 --upgrade -o requirements.cpu.txt requirements.cpu.in
.PHONY: compile-gpu
compile-gpu:
uv pip compile --python-version 3.12 --upgrade -o requirements.torch.gpu.txt requirements.torch.gpu.in
.PHONY: docker-build-gpu
docker-build-gpu:
docker build -t $(IMAGE)-gpu -f Dockerfile.gpu .
requirements.cpu.txt: requirements.in requirements.torch.cpu.txt | $(VENV)
uv pip compile --python-version 3.12 --upgrade -o requirements.cpu.txt requirements.cpu.in
requirements.torch.cpu.txt: requirements.torch.cpu.in | $(VENV)
uv pip compile --python-version 3.12 --upgrade -o requirements.torch.cpu.txt.tmp requirements.torch.cpu.in
echo "--index-url https://download.pytorch.org/whl/cpu" > requirements.torch.cpu.txt
cat requirements.torch.cpu.txt.tmp | grep '^torch' >> requirements.torch.cpu.txt
$(VENV)/requirements.cpu.txt: requirements.cpu.txt | $(VENV)
VIRTUAL_ENV=$(VENV) uv pip install -r requirements.cpu.txt
VIRTUAL_ENV=$(VENV) uv pip install -r requirements.torch.cpu.txt
cp -f requirements.cpu.txt $(VENV)/requirements.cpu.txt
cp -f requirements.torch.cpu.txt $(VENV)/requirements.torch.cpu.txt
$(VENV):
uv venv $(VENV)