[문의] vLLM 빌드시 NVFP4 커널을 활성화 하는 방법

블랙웰 전용 모델인 NVFP4 모델 계열을 로드할 수 있는 vLLM 빌드하고 싶은데 NVFP4 커널이 생성이 안되고 있습니다. 아래와 같이 빌드 하고 있습니다. cuda, pytorch 등은 모두 nightly latest 이고 다른 모델들은 잘 구동중입니다. 오직 nvfp4 계열만 안되고 있습니다.

nvfp4 모델이 블랙웰에서 더 효과적이라고 해서 빌드 해보려고 합니다.

───────── 소스 fresh clone ─────────

git clone GitHub - vllm-project/vllm: A high-throughput and memory-efficient inference and serving engine for LLMs

cd vllm && git submodule update --init --recursive

export CUDA_HOME=/usr/local/cuda-12.9

export PATH=$CUDA_HOME/bin:$PATH

export LD_LIBRARY_PATH=CUDA_HOME/lib64:{LD_LIBRARY_PATH:-}

export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=1 -std=c++17"

export VLLM_BUILD_CUTLASS=1

export VLLM_FLASH_ATTN_VERSION=2

export MAX_JOBS=12 # 12 OK

export CUTLASS_NVCC_ARCHITECTURES=120

export TORCH_CUDA_ARCH_LIST="12.0;12.0+PTX" # real+virtual 모두

export FORCE_CMAKE=1

NVFP4 커널 ON ─ 반드시 CMAKE_ARGS 로도 넘겨야 함

export VLLM_ENABLE_NVFP4=1

export VLLM_BUILD_NVFP4=1

NVFP4 커널 완전 활성화 (+PTX fat‑bin)

export CMAKE_ARGS="-DVLLM_BUILD_COMPRESSED_TENSORS=ON -DVLLM_ENABLE_NVFP4=ON -DVLLM_BUILD_NVFP4=ON -DVLLM_OPS_FORCE_VISIBILITY=ON -DVLLM_FORCE_LOAD_OPS=ON -DCUTLASS_NVFP4_ARCH=120 -DCMAKE_CUDA_ARCHITECTURES=120-real;120-virtual"

4) 빌드 의존성

python -m pip install -U pip wheel setuptools ninja cmake setuptools_scm scikit-build-core

5) 로컬 editable 설치

python -m pip install . --no-build-isolation --no-deps -v

  • 아래 답변은 Anthropic의 Claude-3 Opus 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요, NVFP4 커널 활성화 문제로 고민하시는 것 같네요. 정리해보면 vLLM을 빌드하면서 NVFP4 커널을 활성화하려고 하시는데 잘 안된다는 거죠? 관련 환경 변수와 빌드 명령어도 잘 설명해주셨습니다.

NVFP4 커널을 활성화하기 위해서는 CMAKE_ARGS에 관련 옵션을 명시적으로 넘겨주어야 합니다. 제시해주신 빌드 명령어에는 이미 필요한 옵션들이 잘 포함되어 있는 것 같아요. 빌드 과정에서 관련 메시지가 출력되는지 살펴보시면 도움이 될 것 같습니다.

혹시 아래 두 옵션도 추가해보시는 건 어떨까요?

-DCMAKE_CUDA_ARCHITECTURES="120;120-real;120-virtual"
-DVLLM_ENABLE_NVFP4_IMMA=ON

첫 번째 옵션은 real, virtual 아키텍처를 함께 지정하는 것이고, 두 번째는 NVFP4의 IMMA(Integer Matrix Multiply Accumulate) 명령어를 활성화하는 것입니다. 이 명령어를 사용하면 FP8 Tensor Core에서 정수 타입의 행렬 곱셈을 가속화할 수 있습니다.

추가로 NVFP4와 관련된 PyTorch 튜토리얼을 참고해보시면 좋을 것 같아요.

튜토리얼에서는 Hopper GPU에서의 FP8 연산과 NVFP4 Tensor Core 프로그래밍 모델에 대해 자세히 설명하고 있습니다.

마지막으로 제 답변이 틀렸거나 부족할 수 있습니다. 추가 정보가 필요하시다면 새 글을 통해 알려주시길 바랍니다. 도움이 되셨으면 좋겠습니다!


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
  • 아래 답변은 OpenAI의 GPT-4o 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요! vLLM 빌드 시 NVFP4 커널을 활성화하는 방법에 대해 문의 주셨군요. NVFP4 모델이 블랙웰에서 더 효과적이라고 하여 이를 시도하고 계신데, 빌드 과정에서 NVFP4 커널이 생성되지 않는 문제가 발생하고 있는 것 같습니다.

우선, NVFP4 커널을 활성화하기 위해 필요한 몇 가지 설정을 확인해보겠습니다. 현재 제공해주신 설정을 보면, 환경 변수와 CMake 인자를 통해 NVFP4 관련 옵션을 활성화하려고 하고 계십니다. 몇 가지 확인해야 할 사항과 함께, 추가로 시도해볼 수 있는 방법을 제안드리겠습니다.

  1. CUDA 및 PyTorch 버전 확인: NVFP4 커널이 제대로 활성화되기 위해서는 CUDA와 PyTorch의 버전이 이를 지원해야 합니다. CUDA 12.9와 PyTorch의 최신 nightly 버전을 사용 중이라고 하셨는데, 이들이 NVFP4를 지원하는지 공식 문서를 통해 확인해보세요.

  2. 환경 변수 설정 확인: 환경 변수가 제대로 설정되어 있는지 확인해보세요. 특히 LD_LIBRARY_PATHCUDA_HOME이 올바르게 설정되어 있는지 확인이 필요합니다.

  3. CMake 인자 확인: CMAKE_ARGS에 설정된 인자들이 올바른지 다시 한번 확인해보세요. 특히 -DCUTLASS_NVFP4_ARCH=120-DCMAKE_CUDA_ARCHITECTURES=120-real;120-virtual 설정이 정확한지 확인이 필요합니다.

  4. 빌드 로그 확인: 빌드 과정에서 발생하는 로그를 자세히 살펴보세요. NVFP4 관련 오류 메시지가 있는지 확인하고, 이를 기반으로 문제를 해결할 수 있습니다.

  5. 빌드 스크립트 수정: 만약 위의 방법으로도 해결되지 않는다면, 빌드 스크립트를 직접 수정하여 NVFP4 관련 설정을 추가하거나 수정해보는 것도 방법입니다.

아래는 NVFP4 커널 활성화를 위한 예시 코드입니다. 이 코드를 기반으로 환경 변수를 설정하고 빌드를 시도해보세요.

# 환경 변수 설정
export CUDA_HOME=/usr/local/cuda-12.9
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:${LD_LIBRARY_PATH:-}
export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=1 -std=c++17"
export VLLM_BUILD_CUTLASS=1
export VLLM_FLASH_ATTN_VERSION=2
export MAX_JOBS=12
export CUTLASS_NVCC_ARCHITECTURES=120
export TORCH_CUDA_ARCH_LIST="12.0;12.0+PTX"
export FORCE_CMAKE=1

# NVFP4 커널 활성화
export VLLM_ENABLE_NVFP4=1
export VLLM_BUILD_NVFP4=1

# CMake 인자 설정
export CMAKE_ARGS="-DVLLM_BUILD_COMPRESSED_TENSORS=ON -DVLLM_ENABLE_NVFP4=ON -DVLLM_BUILD_NVFP4=ON -DVLLM_OPS_FORCE_VISIBILITY=ON -DVLLM_FORCE_LOAD_OPS=ON -DCUTLASS_NVFP4_ARCH=120 -DCMAKE_CUDA_ARCHITECTURES=120-real;120-virtual"

# 빌드 의존성 설치
python -m pip install -U pip wheel setuptools ninja cmake setuptools_scm scikit-build-core

# 로컬 editable 설치
python -m pip install . --no-build-isolation --no-deps -v

이 외에도, PyTorch 공식 튜토리얼이나 한국어 튜토리얼을 참고하시면 더 많은 정보를 얻으실 수 있습니다.

혹시라도 이 방법으로 해결되지 않는다면, 추가적인 정보를 제공해주시면 더 도움을 드릴 수 있도록 하겠습니다. 제 답변이 틀릴 수도 있으니, 여러 방법을 시도해보시고 문제가 해결되길 바랍니다. 감사합니다!


  • 이 답변이 도움이 되셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!