Изначально я установил PyTorch с колесом CUDA 12.8 (мой драйвер NVIDIA поддерживает CUDA 12.9). Однако я столкнулся со следующей ошибкой:
Ошибка
Код: Выделить всё
CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling cublasGemmEx(
handle, opa, opb, m, n, k, alpha_ptr, a, CUDA_R_16F, lda, b, CUDA_R_16F,
ldb, beta_ptr, c, std::is_same_v ? CUDA_R_32F : CUDA_R_16F,
ldc, compute_type, CUBLAS_GEMM_DEFAULT_TENSOR_OP
)
Код: Выделить всё
torch + cu121- Когда я установил fp16=False, код работает.
- Когда я установил fp16=True, он не работает.
Среда
- Графический процессор: RTX 3060 (12 ГБ видеопамяти)
- Драйвер NVIDIA: Совместимость с CUDA 12.9
- Версия драйвера: 576.02
- PyTorch: Сборка CUDA 12.1 ()
Код: Выделить всё
cu121 - Модель: BGE-M3
- ОС: Ubuntu 24.04.1 LTS
- Версия Python: 3.10.19
Вот минимальный фрагмент кода, в котором возникает ошибка. Ошибка возникает при настройке use_fp16=True:
Код: Выделить всё
# views.py
from FlagEmbedding import BGEM3FlagModel
embedding_model = BGEM3FlagModel(
"BAAI/bge-m3",
use_fp16=True, #===== this condition is triggering the CUBLAS error
devices=["cuda"]
)
chunks = []
embeddings = embedding_model.encode(
chunks,
batch_size=12,
max_length=512,
)["dense_vecs"]
- Понижен до сборки PyTorch CUDA 12.1 ().
Код: Выделить всё
torch + cu121 - Проверена установка PyTorch и совместимость драйвера NVIDIA.
Почему установка fp16=True вызывает ошибку CUBLAS_STATUS_INVALID_VALUE?
- Существует ли проблема с поддержкой FP16 в моей среде (PyTorch/CUDA)?
- Каковы потенциальные причины этой ошибки и как ее устранить?
Подробнее здесь: https://stackoverflow.com/questions/798 ... h-fp16-fal
Мобильная версия