我发现这篇非常有用的帖子,我想澄清一下关于编译器优化的一些事情。假设我们有这个功能(和原来的帖子一样):
template<int action>
__global__ void kernel()
{
switch(action) {
case 1:
// First code
break;
case 2:
// Second code
break;
}
}
即使在我在编译时调用模板变量未知的函数的情况下,编译器是否会在消除无法访问的代码的意义上进行优化 - 比如创建两个单独的函数?例如:
kernel<argv[1][0]>();