cuda执行的问题,求大牛们释疑???

刚学cuda,好多问题都一知半解,求大牛指点
在编程中发现,如果在kernel的一个大循环中计算出某个数值m(如果执行会很耗时),如果m在循环外面没有用,kernel执行基本不耗时,但是如果m在循环外面使用了,kernel就会很耗时
是不是cuda在执行时,会默认做一些优化处理、智能分析,如果某些计算很耗时,而且其计算结果又没有用,是不是这些计算就省略,不执行了呢?

编译优化的结果。这个编译器能够检测到,垃圾代码自动删除掉了。

楼上说的是对的,不产生结果的代码会被编译器自动删除的,不光CUDA,其它编译器也一样.