CLBlast 库无法在带有 Nvidia GPU 的 Mingw-w64 上运行
CLBlast library not working on Mingw-w64 with Nvidia GPUs
我正在尝试 运行 来自 CLBlast 存储库的示例 samples/sgemm.cpp
Windows 10个带有Nvidia显卡。我从 link 获得了 cl.hpp。 makefile简单如下:
a.exe: sgemm.cpp
g++ sgemm.cpp -lopencl -clblast -O0 -g -DCL_TARGET_OPENCL_VERSION=300
我安装了 Nvidia CUDA 工具包 v11.6,包含目录在环境变量 CPATH
上,因此 g++
可以找到它。此外,编译器是安装了 clblast
的 Mingw-w64 安装的一部分。
问题是编译似乎成功了,但是一旦我尝试执行 a.exe
它就崩溃了,没有任何错误消息。同样,附加 gdb
也无济于事,因为程序会立即退出并 gdb
打印
During startup the program exited with code 0xc0000135.
有什么问题?
更新
我已经打开 issue on the clblas github. Note that I can compile clinfo
from here 没有问题。因此,丢失的图书馆不应该是我想到的第一件事。
要回答这个问题,这不是 gdb
、a.exe
或 CUDA 工具包的问题,而是使用 Visual Studio 构建的已安装库的问题。生成的二进制文件似乎与 g++
不兼容。因此,使用 g++
从源安装库修复了这个问题。
我正在尝试 运行 来自 CLBlast 存储库的示例 samples/sgemm.cpp Windows 10个带有Nvidia显卡。我从 link 获得了 cl.hpp。 makefile简单如下:
a.exe: sgemm.cpp
g++ sgemm.cpp -lopencl -clblast -O0 -g -DCL_TARGET_OPENCL_VERSION=300
我安装了 Nvidia CUDA 工具包 v11.6,包含目录在环境变量 CPATH
上,因此 g++
可以找到它。此外,编译器是安装了 clblast
的 Mingw-w64 安装的一部分。
问题是编译似乎成功了,但是一旦我尝试执行 a.exe
它就崩溃了,没有任何错误消息。同样,附加 gdb
也无济于事,因为程序会立即退出并 gdb
打印
During startup the program exited with code 0xc0000135.
有什么问题?
更新
我已经打开 issue on the clblas github. Note that I can compile clinfo
from here 没有问题。因此,丢失的图书馆不应该是我想到的第一件事。
要回答这个问题,这不是 gdb
、a.exe
或 CUDA 工具包的问题,而是使用 Visual Studio 构建的已安装库的问题。生成的二进制文件似乎与 g++
不兼容。因此,使用 g++
从源安装库修复了这个问题。