CUDA 核函数调用核函数
来源:互联网 发布:淘宝刷客论坛 编辑:程序博客网 时间:2024/05/24 08:32
这几天需要用到kernel函数包含kernel函数的例子,于是出现了几种问题:
一、
error : calling a global function(“childKernel”) from a global function(“kernel”) is only allowed on the compute_35 architecture or above
- 原因及解决方法:
这是因为默认计算能力被设定成了sm_20,compute_20,从而阻止你使用动态并行.
解决方案:
在您的项目属性中, 设定CUDA C/C++中的代码生成为:compute_50,sm_50
这样即可让您的5.0的卡, 支持动态并行, 也就是您说的核函数调用核函数.
二、
改成compute_50,sm_50了,然后从网上找了一个例子,还是报错:错误 17 error : kernel launch from device or global functions requires separate compilation mode
请问这个“独立编译模式”要怎么配置?
- 原因及解决方法:
-
其实只需要将RDC(可重定位设备代码)打开即可.
方式1:
在项目属性中, 设定CUDA C/C++的Generate Relocatable Device Code为True(-rdc=true).
同时所有所有cu文件中的该属性为”继承自项目”.
方式2:
手工将你所有的cu文件该属性设定为”真”.
然后可以不管项目属性.
任选一种.
三、
error LNK2001: unresolved external symbol ___fatbinwrap_66_tmpxft_00000b3c_00000000_17_cuda_device_runtime_compute_52_cpp1_ii_8b1a5d37.
原因及解决方法:
cuda从5.0版本之后开始支持dynamic parallelism,即可以在global函数中调用其他global函数,因此可以实现核函数中再调用核函数。
dynamic parallelism(动态并行)的软硬件条件有:- cuda toolKit 版本5.0或以上;
- GPU compute capability(计算能力)3.5及以上。
此时就可以在核函数中调用另一个核函数了,也可以实现递归调用。但这时会出现如下link error:
error LNK2001: unresolved external symbol ___fatbinwrap_66_tmpxft_00000b3c_00000000_17_cuda_device_runtime_compute_52_cpp1_ii_8b1a5d37.
这是因为动态并行还需要附加另一个库:cudadevrt.lib。加入即可。
- CUDA 核函数调用核函数
- cuda核函数再调用核函数,多层并行
- CUDA Samples学习二(核函数调用)
- cuda实例——简单调用核函数
- CUDA核函数share memory
- 【走进CUDA】~详解CUDA核函数及运行时参数
- CUDA编程(二) CUDA初始化与核函数
- CUDA/ GPU: CUDA核函数的运行参数
- CUDA编程(二) CUDA初始化与核函数
- 在.c文件中调用cuda函数
- 在.c文件中调用cuda函数
- CUDA核函数及运行时参数
- cuda kernel 核函数内分配存储空间
- CUDA:核函数未执行,错误检查
- 关于cuda kernel能否调用printf()函数
- CUDA编程系列--详解CUDA核函数及运行时参数
- 枚举常量(enum)如何在CUDA核函数中使用
- 给cuda核函数传递二维数组的一种方法
- append中一直添加的是最后一个单词
- Active-learning 学习(一)——Random-Walker-Based Collaborative learning
- HDU 5907 Find Q
- Zookeeper的Leader选举
- web service开发时,wsdl2java 客户端代码的生成
- CUDA 核函数调用核函数
- Codeforces768C-Jon Snow and his Favourite Number
- Objective-C使用NSFileHandle类对文件进行基本操作,IOS文件操作
- javaWEB总结(23):HttpSession URL重写
- 《JAVA与模式》之门面模式
- Eclipse恢复默认主题及配色;eclipse-color-theme插件安装
- ListView的优化
- windows平台probuf协议socket通信例子
- vue2.0使用Sortable.js实现的拖拽功能