bug全称
RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling cublasGemmEx( handle, opa, opb, m, n, k, &falpha, a, CUDA_R_16F, lda, b, CUDA_R_16F, ldb, &fbeta, c, CUDA_R_16F, ldc, CUDA_R_32F, CUBLAS_GEMM_DFALT_TENSOR_OP)
问题定位
问题具体定位过程,这里就不过多阐述了,都是通过不断尝试得出的。
简单而言,ChatGLM3的response, history = model.chat(tokenizer, “你好”, history=[])这个语句里面的某个底层语句调用了cublasGemmEx这个函数。
而该函数是一个比较新的函数,在很多cuda版本里面都没有得到很好的支持。
解决办法
我之前使用的是cuda 11.3;pytorch 1.12版本。
升级过后cuda 11.8;pytorch 2.1.0版本。
然后就可以完美适配了。