[Build] Upgrade CUDA Dockerfiles from GCC 10 to GCC 12 for C++20 compatibility (#44923)

Signed-off-by: Richard Barnes <rbarnes@meta.com>
Co-authored-by: Shengqi Chen <harry-chen@outlook.com>
This commit is contained in:
Richard Barnes
2026-06-11 12:26:52 +00:00
committed by GitHub
co-authored by Shengqi Chen
parent ef67071b21
commit 05d9848267
4 changed files with 27 additions and 9 deletions
+8
View File
@@ -20,6 +20,14 @@ set(CMAKE_CUDA_STANDARD_REQUIRED ON)
set(CMAKE_HIP_STANDARD 20)
set(CMAKE_HIP_STANDARD_REQUIRED ON)
# PyTorch headers require C++20; GCC < 11.3 has incomplete C++20 support.
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "11.3")
message(FATAL_ERROR
"GCC >= 11.3 is required to build vLLM (found ${CMAKE_CXX_COMPILER_VERSION}). "
"PyTorch's C++20 headers require a compiler with full C++20 support. "
"See: https://github.com/pytorch/pytorch/pull/167929")
endif()
# CUDA by default, can be overridden by using -DVLLM_TARGET_DEVICE=... (used by setup.py)
set(VLLM_TARGET_DEVICE "cuda" CACHE STRING "Target device backend for vLLM")
+7 -5
View File
@@ -148,11 +148,13 @@ RUN if [ "${BUILD_OS}" = "manylinux" ]; then \
sudo \
python3-pip \
libibverbs-dev \
# Upgrade to GCC 10 to avoid https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92519
# as it was causing spam when compiling the CUTLASS kernels
gcc-10 \
g++-10 \
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 110 --slave /usr/bin/g++ g++ /usr/bin/g++-10 \
# GCC 10 was previously pinned to suppress spurious -Wredundant-move warnings
# from CUTLASS (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92519). That bug
# was fixed in GCC 11. GCC >= 11.3 is now required because PyTorch's C++20 headers
# (pytorch/pytorch#167929) are not compatible with GCC < 11.3.
gcc-11 \
g++-11 \
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11 \
# Install python dev headers if available (needed for cmake FindPython on Ubuntu 24.04
# which ships cmake 3.28 and requires Development.SABIModule; silently skipped on
# Ubuntu 20.04/22.04 where python3.x-dev is not available without a PPA)
+3 -4
View File
@@ -42,10 +42,9 @@ RUN --mount=type=cache,target=/root/.cache/uv \
# Reference: https://github.com/astral-sh/uv/pull/1694
ENV UV_HTTP_TIMEOUT=500
# Upgrade to GCC 10 to avoid https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92519
# as it was causing spam when compiling the CUTLASS kernels
RUN apt-get install -y gcc-10 g++-10
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 110 --slave /usr/bin/g++ g++ /usr/bin/g++-10
# GCC >= 11.3 required for PyTorch C++20 headers (pytorch/pytorch#167929).
RUN apt-get install -y gcc-11 g++-11
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11
RUN <<EOF
gcc --version
EOF
@@ -139,6 +139,15 @@ You can find more information about vLLM's wheels in [Install the latest code](#
#### Full build (with compilation) {#full-build}
!!! note "Compiler requirement"
Building from source requires GCC/G++ ≥ 11.3. PyTorch's C++20 headers are
not compatible with GCC 10 or GCC < 11.3. On Ubuntu 22.04:
```bash
sudo apt-get install -y gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 \
--slave /usr/bin/g++ g++ /usr/bin/g++-11
```
If you want to modify C++ or CUDA code, you'll need to build vLLM from source. This can take several minutes:
```bash