# ============================================================== # flash_attn 휠 빌드 전용 이미지 # # 결과 이미지: /wheels/flash_attn-{version}-cp312-cp312-linux_x86_64.whl 포함 # Gitea 레지스트리 태그: 10.89.0.8:3000/gm/flash-attn-builder:cu128-torch211 # # 빌드: podman build -t 10.89.0.8:3000/gm/flash-attn-builder:cu128-torch211 . # 재빌드 필요 조건: torch 버전 변경, flash_attn 버전 변경, CUDA 버전 변경 # ============================================================== # ── Stage 1: 컴파일 ────────────────────────────────────────── FROM docker.io/nvidia/cuda:12.8.1-cudnn-devel-ubuntu24.04 AS builder ENV DEBIAN_FRONTEND=noninteractive ENV PIP_NO_CACHE_DIR=1 ENV PATH=/opt/venv/bin:$PATH RUN apt-get update && apt-get install -y --no-install-recommends \ python3.12 python3.12-venv python3.12-dev python3-pip \ build-essential ninja-build git \ && rm -rf /var/lib/apt/lists/* RUN python3.12 -m venv /opt/venv && pip install --upgrade pip setuptools wheel ARG TORCH_VERSION=2.11.0+cu128 ARG TORCH_INDEX=https://download.pytorch.org/whl/cu128 # torch만 설치 (flash_attn 컴파일에 torch 헤더 필요, GPU 불필요) RUN pip install torch==${TORCH_VERSION} --extra-index-url ${TORCH_INDEX} ARG FLASH_ATTN_VERSION=2.8.3 ARG MAX_JOBS=4 RUN mkdir /wheels && \ MAX_JOBS=${MAX_JOBS} pip wheel flash-attn==${FLASH_ATTN_VERSION} \ --no-build-isolation --no-deps -w /wheels # ── Stage 2: 휠만 담은 최소 이미지 ────────────────────────── FROM alpine:3 COPY --from=builder /wheels/ /wheels/ CMD ["ls", "/wheels/"]