尝试继续使用 cuda windows

trying to use cuda with go on windows

有各种依赖于 cuda.h 文件和 cuda 库(特别是 ML 库)的 Go 库。每次我尝试在 Windows 上安装这些库之一时,我都会收到一条错误消息

 fatal error: cuda.h: No such file or directory
 //#include <cuda.h>

我知道我需要做什么(link Cuda library/header 文件到我正在尝试安装的 go 库),但是,我不确定如何去做尤其是在 windows 上这样做。由于各种原因,我使用 GCC 而不是 MSVC,但即使我尝试使用 MSVC,我也遇到了同样的问题。

有什么方法可以 link cuda compiler/header 文件直接到我的 Go env 还是我需要手动将 go/cgo 编译器指向保存 Cuda 的目录headers 我该怎么做?

我试过向一些开发这些库的开发人员寻求帮助,但他们中的大多数都是 linux 用户,所以他们并不真正知道。详尽的 google 搜索确实让我无处可去,所以我在这里问。

我找到了答案。

windows cuda 安装程序默认将东西安装到一个奇怪的路径中:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include

由于文件夹名称中的空格,此路径给编译器带来了很多麻烦。在将 Cuda 重新安装到 C:\CUDA\v8.0 中,然后在我的 CGO 文件中适当地附加我的 CFLAGS 和 LDFLAGS 之后,我能够正确地得到东西 运行。

这里是我用来让它工作的 CFLAGS 和 LDFLAGS 供参考:

//#cgo windows LDFLAGS:-LC:/cuda/v8.0/lib/x64
//#cgo windows CFLAGS: -IC:/cuda/v8.0/include
import "C"

这是 github.com/chewxy/cu go 库。我还将新标志附加到 cgoflags.go 文件中的那个库中,因为维护者还没有第 8 版或第 9 版。我向他提到了这一点,他可能会稍后更新,但现在这是你必须做的。