Skip to content
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
55 changes: 55 additions & 0 deletions deploy/Dockerfile.pytorch-worker
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
ARG DEBIAN_FRONTEND=noninteractive
ARG UBUNTU_VERSION=24.04
ARG CUDA_VERSION=13.1.0

# syntax=docker/dockerfile:1.7

FROM nvidia/cuda:${CUDA_VERSION}-devel-ubuntu${UBUNTU_VERSION} AS lupine-build

ARG DEBIAN_FRONTEND

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
cmake \
g++ \
gcc \
libnghttp2-dev \
&& rm -rf /var/lib/apt/lists/*

WORKDIR /opt/lupine-src
COPY . /opt/lupine-src

RUN cmake -S /opt/lupine-src -B /opt/lupine-src/build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs \
&& cmake --build /opt/lupine-src/build --parallel --target lupine_driver lupine_nvml \
&& mkdir -p /opt/lupine/lib \
&& cp /opt/lupine-src/build/libcuda.so.1 /opt/lupine/lib/libcuda.so.1 \
&& cp /opt/lupine-src/build/libnvidia-ml.so.1 /opt/lupine/lib/libnvidia-ml.so.1 \
&& ln -sf libcuda.so.1 /opt/lupine/lib/libcuda.so \
&& ln -sf libnvidia-ml.so.1 /opt/lupine/lib/libnvidia-ml.so

FROM ubuntu:${UBUNTU_VERSION}

ARG DEBIAN_FRONTEND

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
libnghttp2-14 \
python3 \
python3-pip \
&& rm -rf /var/lib/apt/lists/*

RUN --mount=type=cache,target=/root/.cache/pip \
pip3 install --break-system-packages \
--index-url https://download.pytorch.org/whl/cu130 \
torch

COPY --from=lupine-build /opt/lupine/lib /opt/lupine/lib

ENV LUPINE_LIBCUDA=/opt/lupine/lib/libcuda.so.1
ENV LUPINE_LIB=/opt/lupine/lib/libcuda.so.1
ENV LD_LIBRARY_PATH=/opt/lupine/lib:${LD_LIBRARY_PATH}
26 changes: 24 additions & 2 deletions python/lupine/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
it.
"""

from __future__ import annotations

import os
import ctypes
from collections.abc import Sequence
Expand Down Expand Up @@ -250,6 +248,29 @@ def synchronize(index: int = 0) -> None:
torch.cuda.synchronize(_cuda_device(index, require_available=False))


def sidecar(
server: str | None = None,
*,
image: str | None = None,
runtime: str = "auto",
platform: str = "linux/arm64",
rosetta: bool = False,
env: dict[str, str] | None = None,
) -> Any:
"""Create a session-scoped sidecar PyTorch worker frontend."""

from .sidecar import DEFAULT_IMAGE, sidecar as _sidecar

return _sidecar(
server=server,
image=image or DEFAULT_IMAGE,
runtime=runtime,
platform=platform,
rosetta=rosetta,
env=env,
)


__all__ = [
"DEFAULT_PORT",
"LupineError",
Expand All @@ -261,6 +282,7 @@ def synchronize(index: int = 0) -> None:
"devices",
"is_available",
"is_configured",
"sidecar",
"servers",
"synchronize",
]
Loading
Loading