__device__ 函数指针的替代方案?

coderfelix 2010-01-19 02:40:33
请教一下:
我移植到CUDA上的程序原来大量使用了函数指针,但CUDA 的 __device__函数是没有指针的。如果不想把所有函数写成__device__,然后使用大量的"switch-case"来完成函数选择,又能有其他较好的替代方案么?

各位大牛遇到CUDA上使用函数指针的情况,又是怎么解决的呢? 能否赐教?
...全文
81 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
静态的话用模板吧.
动态的话没办法的.可能fermi有相关指令.
  • 打赏
  • 举报
回复
不知道你的函数指针是否是指一个函数数组,数组里每个元素都是一个函数指针。

如果原来是用数组下标的方式来调用函数指针,那么可以考虑用宏。

__device__ func0();
__device__ func1();
__device__ func2();
__device__ func3();

#define FuncPointer(i) \
func##i

580

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧