什么是libcublasLt.so(而不是libcublas.so)



我正在使用pgf95(Fortran编译器(编译源代码。

如果我使用cuda 10.0,它成功地编译了源代码。

然而,如果我使用cuda 10.1,它无法显示"找不到libcublasLt.so"。

当我扫描目录cuda-10.0/lib64和cuda-10.1/lib64时,两者都没有以"libcublasLt"开头的文件。

我该如何解决这个问题?

libcublasLt.so是为这里定义的cublasLt API提供实现的库。它恰好是libcublas.so中的一个单独的共享对象

在过去(例如CUDA 10.0及以前版本(,大多数CUDA库默认安装在/usr/local/cuda/lib64(或类似版本(中(在linux上(。大约在CUDA 10.1的时间表上,决定将一些图书馆安装在不同的地方。CUDA10.1也是介绍cublasLt API和库的地方。这影响了一些cublas库,并在此处的CUDA 10.1发行说明中进行了讨论(cublasLt库的引入以及库位置的更改(。

因此,这里有两种可能性(对于CUDA 10.1、CUDA 10.2(:

  1. libcublasLt.so在您的机器上,但它根本不是您期望的位置。

  2. libcublasLt.so不在您的机器上。这意味着您在使用cublasLt API之前的CUDA版本(即10.0或更高版本(,或者您的安装已损坏。

因此,假设您使用的是CUDA 10.1或CUDA 10.2,第一步是定位/确定libcublasLt.so是否在您的机器上。您可以使用像findlocate这样的linux实用程序来实现这一点。他们应该有man页面可供您使用。

如果你能找到它,那么你需要通过链接器规范提供它的路径(例如-L/path/to/libcublasLt.so/

如果找不到,则说明您使用的是旧版本的CUDA(10.0或更高版本(,或者需要重新安装CUDA。

我相信,当您使用CUDA 11.0时,CUDA包会将cublas库与其他库一起放回/usr/local/cuda/lib64中。YMMV。

相关内容

最新更新