【发布时间】:2018-03-13 07:11:59
【问题描述】:
有多种 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 环境,或者我需要手动将 go/cgo 编译器指向保存 Cuda 头文件的目录,我该怎么做?
我曾尝试向一些制作这些库的开发人员寻求帮助,但他们中的大多数是 linux 用户,所以他们并不真正了解。一个详尽的谷歌搜索真的让我无处可去,所以我在这里问。
【问题讨论】:
-
你在你的windows机器上安装了CUDA吗?那将是第一步。如果你打算使用 CUDA,GCC 不是官方支持的编译器。您应该使用 MSVC。
-
是的,我的机器上当然安装了 cuda。 MSVC 也给出了同样的错误。
-
如果你使用MSVC,那么在MSVC项目中添加一个包含路径,指向
cuda.h所在的目录。 -
即使我将 MSVC 指向 cuda 包含文件夹,它也无法正常工作。这非常烦人,我可以使用 tensorflow 和几乎任何其他带有 Cuda 的 ML 库,但我无法编译任何 golang 库。
-
如果您有一个 MSVC 项目,并且您添加了类似
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include的包含路径(或安装在您机器上的任何位置),那么该项目应该能够正确定位#include <cuda.h>.不知道是什么问题。