diff --git a/.github/workflows/release-ci-docker.yml b/.github/workflows/release-ci-docker.yml index 944d35c730..4df3509a55 100644 --- a/.github/workflows/release-ci-docker.yml +++ b/.github/workflows/release-ci-docker.yml @@ -36,7 +36,7 @@ jobs: needs: generate-tag strategy: matrix: - cuda: [cu126, cu128, cu129, cu130, cu131] + cuda: [cu126, cu128, cu129, cu130, cu132] arch: [amd64, arm64] steps: - uses: actions/checkout@v4 @@ -74,7 +74,7 @@ jobs: needs: [generate-tag, build] strategy: matrix: - cuda: [cu126, cu128, cu129, cu130, cu131] + cuda: [cu126, cu128, cu129, cu130, cu132] steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -111,7 +111,7 @@ jobs: flashinfer/flashinfer-ci-cu128: ${DATE_SHA} flashinfer/flashinfer-ci-cu129: ${DATE_SHA} flashinfer/flashinfer-ci-cu130: ${DATE_SHA} - flashinfer/flashinfer-ci-cu131: ${DATE_SHA} + flashinfer/flashinfer-ci-cu132: ${DATE_SHA} EOF - name: Create Pull Request @@ -128,7 +128,7 @@ jobs: - flashinfer/flashinfer-ci-cu128:${{ needs.generate-tag.outputs.date_sha }} - flashinfer/flashinfer-ci-cu129:${{ needs.generate-tag.outputs.date_sha }} - flashinfer/flashinfer-ci-cu130:${{ needs.generate-tag.outputs.date_sha }} - - flashinfer/flashinfer-ci-cu131:${{ needs.generate-tag.outputs.date_sha }} + - flashinfer/flashinfer-ci-cu132:${{ needs.generate-tag.outputs.date_sha }} Auto-generated by [release-ci-docker workflow](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) branch: update-docker-tags-${{ needs.generate-tag.outputs.date_sha }} diff --git a/docker/Dockerfile.cu132 b/docker/Dockerfile.cu132 new file mode 100644 index 0000000000..3d911af3a8 --- /dev/null +++ b/docker/Dockerfile.cu132 @@ -0,0 +1,44 @@ +FROM nvidia/cuda:13.2.0-devel-ubuntu24.04 + +ENV DEBIAN_FRONTEND=noninteractive + +# Update package lists and install system dependencies +RUN apt-get update && apt-get install -y \ + curl \ + git \ + wget + +# Install python +COPY docker/install/install_python.sh /install/install_python.sh +RUN bash /install/install_python.sh /opt/conda py312 + +# Set home directory +WORKDIR /workspace + +RUN echo "source activate py312" >> ~/.bashrc +ENV PATH="/opt/conda/bin:$PATH" +ENV PATH="/opt/conda/envs/py312/bin:$PATH" + +# Set LD_LIBRARY_PATH to ensure pip-installed nvidia-cublas takes precedence over system libraries +ENV LD_LIBRARY_PATH="/opt/conda/envs/py312/lib/python3.12/site-packages/nvidia/cu13/lib/:$LD_LIBRARY_PATH" + +# Triton +ENV TRITON_PTXAS_PATH="/usr/local/cuda/bin/ptxas" + +# Install torch and other python packages +# use nightly/cu132 temporarily and change to cu132 when torch releases stable version +COPY requirements.txt /install/requirements.txt +COPY docker/install/install_python_packages.sh /install/install_python_packages.sh +RUN bash /install/install_python_packages.sh nightly/cu132 + +# Install tilelang and cuda-tile +RUN pip install tilelang cuda-tile + +# Install mpi4py in the conda environment +RUN conda install -n py312 -y mpi4py mpich + +# Configure pip for user-site installations (allows arbitrary users to install packages) +# This enables 'pip install --user' and 'pip install -e .' to work for any user +RUN mkdir -p /opt/pip-user && chmod 1777 /opt/pip-user +ENV PYTHONUSERBASE=/opt/pip-user +ENV PATH="/opt/pip-user/bin:$PATH" diff --git a/docker/Dockerfile.cu132.dev b/docker/Dockerfile.cu132.dev new file mode 100644 index 0000000000..3b28d84613 --- /dev/null +++ b/docker/Dockerfile.cu132.dev @@ -0,0 +1,77 @@ +FROM nvidia/cuda:13.2.0-devel-ubuntu24.04 + +ENV DEBIAN_FRONTEND=noninteractive + +# Update package lists and install system dependencies +RUN apt-get update && apt-get install -y \ + curl \ + git \ + wget \ + clang-format \ + clangd-19 \ + vim \ + zsh \ + && rm -rf /var/lib/apt/lists/* + +# Create a non-root user +ARG USERNAME=devuser +ARG USER_UID=1003 +ARG USER_GID=$USER_UID + +# Create the user +RUN groupadd --gid $USER_GID $USERNAME \ + && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ + # [Optional] Add sudo support + && apt-get update \ + && apt-get install -y sudo \ + && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ + && chmod 0440 /etc/sudoers.d/$USERNAME \ + && rm -rf /var/lib/apt/lists/* + +# Remove default 'ubuntu' user (UID 1000) to prevent devcontainer permission conflicts +# Ref: https://github.com/rapidsai/devcontainers/pull/373 +RUN if grep ubuntu:x:1000:1000 /etc/passwd >/dev/null; then userdel -f -r ubuntu; fi + +# Switch to non-root user +USER $USERNAME +WORKDIR /home/$USERNAME + +# Install python +COPY docker/install/install_python.sh /install/install_python.sh +RUN bash /install/install_python.sh /home/$USERNAME/conda py312 + +RUN echo "source activate py312" >> ~/.bashrc +ENV PATH="/home/$USERNAME/conda/bin:$PATH" +ENV PATH="/home/$USERNAME/conda/envs/py312/bin:$PATH" + +# Install torch and other python packages +# use nightly/cu132 temporarily and change to cu132 when torch releases stable version +COPY requirements.txt /install/requirements.txt +COPY docker/install/install_python_packages.sh /install/install_python_packages.sh +RUN bash /install/install_python_packages.sh nightly/cu132 && pip3 install pre-commit + +# Install tilelang and cuda-tile +RUN pip install tilelang cuda-tile + +# Install mpi4py in the conda environment +RUN conda install -n py312 -y mpi4py mpich + +# Install oh-my-zsh +RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended + +# Install zsh-autosuggestions +RUN git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions + +# Configure zsh +RUN sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="fino-time"/' ~/.zshrc && \ + sed -i 's/plugins=(git)/plugins=(git zsh-autosuggestions)/' ~/.zshrc + +# clangd +ENV PATH="/usr/lib/llvm-19/bin:$PATH" + +# Triton +ENV TRITON_PTXAS_PATH="/usr/local/cuda/bin/ptxas" + +# Set zsh as default shell +ENV SHELL=/bin/zsh +CMD [ "zsh" ]