2013-05-01 176 views
2

我想执行一些CUDA代码,碰巧有一些 NVML库函数,如nvmlSystemGetDriverVersion。 但是,当我尝试编译代码时,它说没有找到nvml.h。 我应该如何在我的系统上安装NVML,因为nvml.h好像不存在 ?NVML头文件丢失

回答

3

谷歌搜索“nvidia nvml”返回this作为第一个链接。此页面包含API文档的链接。

在该页面中,如果你点击特斯拉部署工具包link,然后你可以找到适合你的操作系统(Windows或Linux)和CUDA版本(CUDA 5.0 CUDA 4.2)

特斯拉的下载链接部署工具包包含您提到的头文件(nvml.h)以及一些您可能需要链接的库,以便使用NVML函数。

有一些样本构建项目,包括Tesla Deployment Kit中的makefile,它应回答有关如何使用套件中的资产进行编译和链接的任何问题。

编辑:有一个示例项目在.../tdk_3.xxxx/nvml /例如 有一个在这个例子项目目录中的Makefile。 如果您检查该makefile文件,你会看到在nvml库链接编译命令需要包含类似:

-L/path/to/nvml/lib64/ -lnvidia-ml 
+0

我从tdk_3.304.5/nvml /包括/ nvml.h复制的文件到 适当的包含路径以及从tdk_3.304.5/nvml/lib和lib64到/ usr/local/lib和/ usr/local/lib64的lib文件。但是在编译代码的时候,我得到一个像/tmp/tmpxft_000030aa_00000000-14_gpupow.o这样的错误:在函数'main'中: tmpxft_000030aa_00000000-3_gpupow.cudafe1.cpp :(.text + 0xc):未定义的对'nvmlInit'的引用 等等。你能说出是什么问题吗? – 2013-05-02 17:15:55

+0

是的,你在编译命令中没有链接nvml库。查看TDK示例项目中的makefile以查看库的调用和链接方式。 – 2013-05-02 17:20:08

+0

编辑了我的答案并提供了更多信息。 – 2013-05-02 17:26:47