解决报错:CUBLAS_STATUS_INVALID_VALUE when calling `cublasSgemmStridedBatched( handle, opa, opb, m......

CUBLAS_STATUS_INVALID_VALUE

完整报错:

CUBLAS_STATUS_INVALID_VALUE when calling `cublasSgemmStridedBatched( handle, opa, opb, m, n, k, &alpha, a, lda, stridea, b, ldb, strideb, &beta, c, ldc, stridec, num_batches)`

就目前来看:有以下三种可能:

1. Batchsize

将Batchsize调小,我的batchsize本来就是1,所以应该不是这个问题。

2. 版本不匹配

CUDA版本和cudnn版本不匹配。

3. 维度不匹配

很多是由于nn.Linner层的 Tensor 尺寸匹配问题,打印下张量的维shape属性,显然我的尺寸也是符合乘法操作的。

3. 恢复 LD_LIBRARY_PATH 默认设置

unset LD_LIBRARY_PATH

然后重新运行代码。完美解决!!!

unset LD_LIBRARY_PATH 是一个用于取消环境变量 LD_LIBRARY_PATH 设置的命令。通常情况下,LD_LIBRARY_PATH 用于指定共享库文件(例如动态链接库)的搜索路径。通过设置这个环境变量,您可以告诉系统在哪里查找共享库,以便在运行时加载它们。

使用 unset LD_LIBRARY_PATH 命令可以将 LD_LIBRARY_PATH 环境变量的值删除,这意味着系统将使用默认的库搜索路径来查找共享库文件。这对于解决一些与库路径设置相关的问题或恢复默认设置非常有用。

请注意,在取消设置 LD_LIBRARY_PATH 后,您的系统将使用默认的共享库搜索路径。如果您之前设置了 LD_LIBRARY_PATH 以指定特定路径,取消设置后,系统将不再搜索该路径中的共享库。确保您的系统仍然能够找到所需的共享库文件,否则可能会导致应用程序无法正常工作。

猜你喜欢

转载自blog.csdn.net/qq_44824148/article/details/133307138