Skip to content

Commit c7df9bf

Browse files
bigPYJ1151sfeng33
authored andcommitted
[CI/Build][CPU] Enable cross compilation in CPU release pipeline (vllm-project#20423)
Signed-off-by: jiang1.li <jiang1.li@intel.com>
1 parent 27a8b26 commit c7df9bf

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

.buildkite/release-pipeline.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ steps:
101101
queue: cpu_queue_postmerge
102102
commands:
103103
- "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
104-
- "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg GIT_REPO_CHECK=1 --tag public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:$(buildkite-agent meta-data get release-version) --tag public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:latest --progress plain --target vllm-openai -f docker/Dockerfile.cpu ."
104+
- "DOCKER_BUILDKIT=1 docker build --build-arg max_jobs=16 --build-arg GIT_REPO_CHECK=1 --build-arg VLLM_CPU_AVX512BF16=true --build-arg VLLM_CPU_AVX512VNNI=true --tag public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:$(buildkite-agent meta-data get release-version) --tag public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:latest --progress plain --target vllm-openai -f docker/Dockerfile.cpu ."
105105
- "docker push public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:latest"
106106
- "docker push public.ecr.aws/q9t5s3a7/vllm-cpu-release-repo:$(buildkite-agent meta-data get release-version)"
107107
env:

cmake/cpu_extension.cmake

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ endif()
1212
#
1313
# Define environment variables for special configurations
1414
#
15-
if(DEFINED ENV{VLLM_CPU_AVX512BF16})
16-
set(ENABLE_AVX512BF16 ON)
17-
endif()
15+
set(ENABLE_AVX512BF16 $ENV{VLLM_CPU_AVX512BF16})
16+
set(ENABLE_AVX512VNNI $ENV{VLLM_CPU_AVX512VNNI})
1817

1918
include_directories("${CMAKE_SOURCE_DIR}/csrc")
2019

@@ -107,10 +106,19 @@ if (AVX512_FOUND AND NOT AVX512_DISABLED)
107106
endif()
108107

109108
find_isa(${CPUINFO} "avx512_vnni" AVX512VNNI_FOUND)
110-
if (AVX512VNNI_FOUND)
111-
list(APPEND CXX_COMPILE_FLAGS "-mavx512vnni")
112-
set(ENABLE_AVX512VNNI ON)
113-
endif()
109+
if (AVX512VNNI_FOUND OR ENABLE_AVX512VNNI)
110+
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND
111+
CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 12.3)
112+
list(APPEND CXX_COMPILE_FLAGS "-mavx512vnni")
113+
set(ENABLE_AVX512VNNI ON)
114+
else()
115+
set(ENABLE_AVX512VNNI OFF)
116+
message(WARNING "Disable AVX512-VNNI ISA support, requires gcc/g++ >= 12.3")
117+
endif()
118+
else()
119+
set(ENABLE_AVX512VNNI OFF)
120+
message(WARNING "Disable AVX512-VNNI ISA support, no avx512_vnni found in local CPU flags." " If cross-compilation is required, please set env VLLM_CPU_AVX512VNNI=1.")
121+
endif()
114122

115123
elseif (AVX2_FOUND)
116124
list(APPEND CXX_COMPILE_FLAGS "-mavx2")
@@ -257,6 +265,8 @@ elseif(POWER10_FOUND)
257265
${VLLM_EXT_SRC})
258266
endif()
259267

268+
message(STATUS "CPU extension source files: ${VLLM_EXT_SRC}")
269+
260270
#
261271
# Define extension targets
262272
#

docker/Dockerfile.cpu

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
# Build arguments:
99
# PYTHON_VERSION=3.12 (default)|3.11|3.10|3.9
1010
# VLLM_CPU_DISABLE_AVX512=false (default)|true
11+
# VLLM_CPU_AVX512BF16=false (default)|true
12+
# VLLM_CPU_AVX512VNNI=false (default)|true
1113
#
1214

1315
######################### BASE IMAGE #########################
@@ -60,8 +62,14 @@ FROM base AS vllm-build
6062

6163
ARG GIT_REPO_CHECK=0
6264
# Support for building with non-AVX512 vLLM: docker build --build-arg VLLM_CPU_DISABLE_AVX512="true" ...
63-
ARG VLLM_CPU_DISABLE_AVX512
65+
ARG VLLM_CPU_DISABLE_AVX512=0
6466
ENV VLLM_CPU_DISABLE_AVX512=${VLLM_CPU_DISABLE_AVX512}
67+
# Support for building with AVX512BF16 ISA: docker build --build-arg VLLM_CPU_AVX512BF16="true" ...
68+
ARG VLLM_CPU_AVX512BF16=0
69+
ENV VLLM_CPU_AVX512BF16=${VLLM_CPU_AVX512BF16}
70+
# Support for building with AVX512VNNI ISA: docker build --build-arg VLLM_CPU_AVX512VNNI="true" ...
71+
ARG VLLM_CPU_AVX512VNNI=0
72+
ENV VLLM_CPU_AVX512VNNI=${VLLM_CPU_AVX512VNNI}
6573

6674
WORKDIR /workspace/vllm
6775

0 commit comments

Comments
 (0)