NanoGPT (124M) in 90 seconds
docker pull KellerJordan/modded-nanogpt:latest
docker run -d --name modded-nanogpt --restart always kellerjordan/modded-nanogpt:latest
podman run -d --name modded-nanogpt --restart always kellerjordan/modded-nanogpt:latest
skopeo inspect docker://docker.io/kellerjordan/modded-nanogpt:latest
oras pull kellerjordan/modded-nanogpt:latest
FROM nvidia/cuda:13.1.1-cudnn-devel-ubuntu24.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHON_VERSION=3.12.7
ENV PATH=/usr/local/bin:$PATH
RUN apt update && apt install -y --no-install-recommends build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl git libncursesw5-dev xz-utils tk-dev libxml2-dev \
libxmlsec1-dev libffi-dev liblzma-dev \
&& apt clean && rm -rf /var/lib/apt/lists/*
RUN curl -O https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz && \
tar -xzf Python-${PYTHON_VERSION}.tgz && \
cd Python-${PYTHON_VERSION} && \
./configure --enable-optimizations && \
make -j$(nproc) && \
make altinstall && \
cd .. && \
rm -rf Python-${PYTHON_VERSION} Python-${PYTHON_VERSION}.tgz
RUN ln -s /usr/local/bin/python3.12 /usr/local/bin/python && \
ln -s /usr/local/bin/pip3.12 /usr/local/bin/pip
COPY requirements.txt /modded-nanogpt/requirements.txt
WORKDIR /modded-nanogpt
RUN python -m pip install --upgrade pip && \
pip install -r requirements.txt
# [ANVIL2] The certified stack: pinned stable torch==2.10 from the cu128 wheel index, on a
# CUDA-13 base (the attention kernel links libcudart.so.13; a 12.x base cannot run it).
# The stock repo installed an unpinned nightly here; a nightly loads (the kernel is stable-ABI)
# but its numerics are unpinned and have produced NaNs in reproduction attempts. Do not substitute.
RUN pip install torch==2.10 --index-url https://download.pytorch.org/whl/cu128
CMD ["bash"]
ENTRYPOINT []