首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CUDA_FORCE_PTX_JIT?

如何使用CUDA_FORCE_PTX_JIT?
EN

Stack Overflow用户
提问于 2013-01-27 12:23:19
回答 1查看 1.2K关注 0票数 0

根据NVIDIA编程指南:

运行时由应用程序加载的任何PTX代码将由设备驱动程序进一步编译为二进制代码。这就是所谓的即时编译。即时编译增加了应用程序的加载时间,但允许应用程序从最新的编译器改进中获益.

..。

将CUDA_FORCE_PTX_JIT设置为1,将迫使设备驱动程序忽略嵌入在应用程序中的任何二进制代码(请参阅3.1.4节),并立即编译嵌入式PTX代码;如果内核没有嵌入PTX代码,它将无法加载。

我使用以下标志编译了我的简单vectorAdd:

代码语言:javascript
复制
nvcc -o vectorAdd -gencode arch=compute_20,code=sm_20 vectorAdd.cu

CUDA_FORCE_PTX_JIT环境变量未设置时,我将得到正确的结果。但是,当我将CUDA_FORCE_PTX_JIT环境变量设置为1时,会得到来自cudaGetErrorString的以下错误

代码语言:javascript
复制
invalid device function 

我如何解决这个问题并使CUDA_FORCE_PTX_JIT正常工作?也许我的编译方式没有嵌入任何PTX代码。

提前谢谢。

更多信息:

CUDA驱动程序版本: 295.41

CUDA工具包版本: 4.0

操作系统:Ubuntu10.04

硬件: GTX 480,或Tesla C2050

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-01 16:20:17

我找到了一个解决这个问题的方法。在编译期间,无论如何都不能指定目标GPU (删除-arch-gencode标志)。随后,驱动程序在运行时生成目标二进制文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14547261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档