Skip to content

Commit 29cb3e3

Browse files
committed
Add Helion Docker image with auto-publish workflow
Dockerfile based on modal_runner.py deps, focused on torch + helion. Other packages (tinygrad, CUTLASS, cupynumeric, etc.) commented out for easy re-enabling. GitHub Actions workflow builds and pushes to ghcr.io/gpu-mode/helion-runner on changes to the Dockerfile.
1 parent 4dfc0d3 commit 29cb3e3

2 files changed

Lines changed: 98 additions & 0 deletions

File tree

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Publish Helion Docker image
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- 'docker/helion.Dockerfile'
8+
workflow_dispatch:
9+
10+
env:
11+
REGISTRY: ghcr.io
12+
IMAGE_NAME: gpu-mode/helion-runner
13+
14+
jobs:
15+
build-and-push-image:
16+
runs-on: ubuntu-latest
17+
permissions:
18+
contents: read
19+
packages: write
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@v4
23+
24+
- name: Log in to the Container registry
25+
uses: docker/login-action@v3
26+
with:
27+
registry: ${{ env.REGISTRY }}
28+
username: ${{ github.actor }}
29+
password: ${{ secrets.GITHUB_TOKEN }}
30+
31+
- name: Extract metadata (tags, labels) for Docker
32+
id: meta
33+
uses: docker/metadata-action@v5
34+
with:
35+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
36+
tags: |
37+
type=sha
38+
type=raw,value=latest
39+
40+
- name: Build and push Docker image
41+
uses: docker/build-push-action@v6
42+
with:
43+
context: .
44+
file: docker/helion.Dockerfile
45+
push: true
46+
tags: ${{ steps.meta.outputs.tags }}
47+
labels: ${{ steps.meta.outputs.labels }}

docker/helion.Dockerfile

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
FROM nvidia/cuda:13.1.0-devel-ubuntu24.04
2+
3+
# Install Python 3.13
4+
RUN apt-get update && apt-get install -y --no-install-recommends \
5+
software-properties-common \
6+
&& add-apt-repository ppa:deadsnakes/ppa \
7+
&& apt-get update && apt-get install -y --no-install-recommends \
8+
python3.13 \
9+
python3.13-venv \
10+
python3.13-dev \
11+
git \
12+
gcc-13 \
13+
g++-13 \
14+
&& rm -rf /var/lib/apt/lists/*
15+
16+
RUN ln -sf /usr/bin/python3.13 /usr/local/bin/python3 \
17+
&& ln -sf /usr/bin/python3.13 /usr/local/bin/python
18+
19+
# Install pip and uv
20+
RUN python3 -m ensurepip --upgrade \
21+
&& python3 -m pip install --no-cache-dir uv
22+
23+
# Core build tools
24+
RUN uv pip install --system \
25+
ninja~=1.11 \
26+
wheel~=0.45 \
27+
packaging~=25.0 \
28+
numpy~=2.3
29+
30+
# PyTorch (CUDA 13.0 wheels)
31+
RUN uv pip install --system \
32+
torch==2.9.1 \
33+
--index-url https://download.pytorch.org/whl/cu130
34+
35+
# Helion
36+
RUN uv pip install --system helion
37+
38+
# # tinygrad
39+
# RUN uv pip install --system tinygrad~=0.10
40+
41+
# # NVIDIA CUDA packages
42+
# RUN uv pip install --system \
43+
# nvidia-cupynumeric~=25.3 \
44+
# nvidia-cutlass-dsl==4.3.5 \
45+
# "cuda-core[cu13]" \
46+
# "cuda-python[all]==13.0"
47+
48+
# # CUTLASS C++ headers
49+
# RUN git clone --depth 1 --branch v4.3.5 https://github.com/NVIDIA/cutlass.git /opt/cutlass
50+
# ENV CUTLASS_PATH=/opt/cutlass
51+
# ENV CPLUS_INCLUDE_PATH=/opt/cutlass/include:/opt/cutlass/tools/util/include

0 commit comments

Comments
 (0)