我发现这篇文章非常有用,我想澄清一下编译器优化的问题。假设我们有这个函数(与原帖中相同):
template<int action>
__global__ void kernel()
{
switch(action) {
case 1:
// First code
break;
case 2:
// Second code
break;
}
}
即使在我使用编译时的未知模板变量调用函数的情况下,编译器是否会进行优化,以消除不可达代码 - 比如创建两个单独的函数?例如:
kernel<argv[1][0]>();