CUDA kernel函数中的switch

Love_WYC_Forever 2012-06-20 07:25:00
switch(functionId)
{
case 0: faib = AckleyKernel(paradim, para, direction, b, maxboundary, minboundary); break;
case 1: faib = Alpine(paradim, para, direction, b, maxboundary, minboundary); break;
case 2: faib = Axixparallel(paradim, para, direction, b, maxboundary, minboundary); break;
case 3: faib = Dejong(paradim, para, direction, b, maxboundary, minboundary); break;
case 4: faib = Dropwave(paradim, para, direction, b, maxboundary, minboundary); break;
case 5: faib = Griewangk(paradim, para, direction, b, maxboundary, minboundary); break;
case 6: faib = Rosenbrock(paradim, para, direction, b, maxboundary, minboundary); break;
case 7: faib = Schwefel(paradim, para, direction, b, maxboundary, minboundary); break;
default: faib = 0;
}
以上是我kernel函数中的一段代码,functionId是一个int变量用于选择要执行的device函数,device函数是经测试的无错的函数,以上代码执行的时候会报invalid argument错误,但是任意注掉其中的两行代码就能无错的执行,我找了一下资料也没看出相关问题出在哪,求大神指教
...全文
172 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

580

社区成员

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

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