对上一步循环计算的结果有依赖的函数能用CUDA改写吗?

如题,我有一个循环函数,是通过上一步的计算结果再进行计算的函数,这样的函数能用CUDA改写吗?
我感觉似乎不可以啊,这样似乎就要serial得执行了,好像就不能并行了

从目前你的信息,不能,但是能否考虑一下循环内部的?

是一个对读取到buffer的文件内容生成数字签名的函数,使用滑动窗口法,计算一个窗口内的也就是48Byte的内容的数字签名,要比较这个数字签名与一个固定值,如果生成的数字签名与固定值相同,就停止循环,不然就把窗口往前移动一个byte,计算新的窗口的数字签名,可是这个新的窗口的数字签名的计算是通过对上一个窗口的数字签名进行计算的。

另外,我能在kernel函数里面进行位移操作吗?CPU好像直接支持位移操作,不知道GPU行不行啊 x<<4这样的操作,支持吗?

呵呵!支持

有些可以,但要看能不能解耦
数字签名这种hash的很难
除非只是把上一步结果和这一步的计算做求余之类的可逆的运算
但hash类一般都设计成不能这么拆