Renderscript和GPU

时间:2013-06-11 23:34:04

标签: gpu renderscript

知道 Renderscript的设计是为了模糊我正在运行的处理器的事实,但有没有办法编写代码,以便在支持GPU计算的设备上(在那一刻,Nexus 10),在GPU上运行?有没有办法告诉脚本的功能是否在GPU上运行?

www.leapconf.com/downloads/LihuaZhang-MulticoreWare.pdf建议如果我不使用全局变量,我不使用递归,也不要在内核中的任何地方调用rsDebug,它将在GPU;那是对的吗?

我很想看到人们以某种​​方式验证过的短脚本将作为纯粹基于计算的任务运行在gpu上(例如,没有图形工作)。

1 个答案:

答案 0 :(得分:2)

一般来说,有关Nexus 10行为的说法是正确的。调用一些会导致CPU运行函数的RS运行时函数(例如,不调用rsGetAllocation)还有一些其他的事情。但是,我认为不是分配或绑定指针的全局变量在4.2中是可以的。

展望未来,很多限制将会放松(全球化是最重要的)。

就查看内核运行的位置而言:用4.2来解决这个问题并不是很多。我们还没有看到这样做的令人信服的理由,但如果事实证明这非常重要,那么我们可以通过像systrace之类的东西来添加一些东西。如果您能够证明为什么会让您受到伤害,请随意向我们投诉“我认为代码会在GPU上运行得更快。”

我很确定ImageProcessing中的Mandelbrot实现(fw / base / tests / RenderScriptTests / ImageProcessing /)在4.2中运行在GPU上。