有各种Go库依赖于cuda.h文件和cuda库(特别是ML库)。每次我尝试在Windows上安装其中一个库时,我都会收到错误消息
fatal error: cuda.h: No such file or directory
//#include <cuda.h>
我知道我需要做什么(将Cuda库/头文件链接到我试图安装的go库),但是,我不知道如何在Windows上执行此操作。我出于各种原因使用GCC而不是MSVC,但即使我尝试使用MSVC,我也遇到了同样的问题。
是否有某种方法可以将cuda编译器/头文件直接链接到我的Go env,或者我是否需要手动将go / cgo编译器指向包含Cuda标头的目录以及如何执行此操作?
我试过询问一些开发这些库的开发人员,但他们中的大多数都是linux用户,所以他们真的不知道。一个详尽的谷歌搜索真的让我无处可去,所以我在这里问。
答案 0 :(得分:1)
我能找到答案。
Windows cuda安装程序默认将内容安装到一个奇怪的路径中:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include
由于文件夹名称中的空格,此路径给编译器带来了很多痛苦。将Cuda重新安装到C:\CUDA\v8.0
然后将我的CFLAGS和LDFLAGS适当地附加到我的CGO文件中后,我能够正常运行。
这里有参考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。我向他提到过这个问题,他可能会在以后更新,但现在你需要做的就是这个。