SGLang启动失败:缺失cuda_fp8.h,禁用CUDA Graph仍无效
解决方法
- 禁用FP8相关编译逻辑
设置环境变量FLASHINFER_DISABLE_FP8=1,跳过所有FP8相关的内核初始化和JIT编译,避免对cuda_fp8.h的依赖。修改后的启动命令:
FLASHINFER_DISABLE_FP8=1 CUDA_VISIBLE_DEVICES=7 python -m sglang.launch_server --port 7501 --model-path meta-llama/Llama-3.1-8B-Instruct --disable-cuda-graph
匹配CUDA版本的预编译wheel
当前使用的是cu124版本的PyTorch,但安装的是cu121的flashinfer wheel,版本不匹配可能导致预编译内核无法被正确加载,进而触发JIT编译。建议使用对应cu124版本的flashinfer wheel(若存在),或降级PyTorch到cu121版本以匹配wheel。强制禁用JIT编译
设置环境变量FLASHINFER_JIT_ENABLE=0,强制flashinfer不进行JIT编译,仅使用预编译内核:
FLASHINFER_JIT_ENABLE=0 CUDA_VISIBLE_DEVICES=7 python -m sglang.launch_server --port 7501 --model-path meta-llama/Llama-3.1-8B-Instruct --disable-cuda-graph
补充说明
这种非预期的JIT编译触发,大概率是因为flashinfer初始化时,即使禁用了CUDA Graph,仍会尝试检查FP8内核支持,而环境缺少CUDA头文件导致失败。通过上述环境变量可直接跳过相关逻辑,强制使用兼容的预编译内核。
内容的提问来源于stack exchange,提问作者Charlie Parker
相关产品推荐
相关产品推荐

