请教判断语句???

请问在cuda上使用if…else…语句,时间为什么会大大拉长啊?

LZ您好,在kernel里面使用if-else,在分支不和warp对齐的时候(即不能保证整个warp都走同一个分支的时候),执行效能会有较为明显的下降。如果kernel里面有大量密集的if-else,那么速度可能会下降到无法接受的程度。

其原因是硬件的SIMT执行机制使然,别无他法解决。

祝您编码愉快~

哦,原来是这样啊,我今天在一个程序中添加了判断语句if-else,明显感觉到速度的下降,谢谢哈