我知道Renderscript的设计是为了掩盖我正在运行哪个处理器的事实,但是有什么方法来编写这样的代码吗?这样的代码可以在支持GPU的设备上运行(目前,Nexus 10),它将在GPU上运行吗?有什么方法可以告诉我们脚本的函数正在GPU上运行吗?
www.leapconf.com/downloads/LihuaZhang-MulticoreWare.pdf建议,如果我不使用全局函数,不使用递归,并且不调用内核中的任何位置的rsDebug,那么它将在GPU上运行,对吗?
我希望看到一个简短的脚本,人们已经以某种方式验证了它将运行在gpu上,作为一个纯粹的基于计算的任务(例如,没有图形工作)。
发布于 2013-06-18 17:28:36
总的来说,那些关于Nexus 10行为的说法是正确的。调用一些RS运行时函数(例如,不要调用rsGetAllocation)还会导致CPU运行函数。但是,我认为不是分配或绑定指针的全局值在4.2中是可以的。
展望未来,许多这些限制将被放松(全球是最大的限制)。
在查看内核运行位置方面:使用4.2可以做的事情不多。我们还没有看到一个令人信服的理由这样做,但如果这是真的很重要,这是我们可以增加的东西,没有太多的困难,通过一些东西,比如系统。如果你能证明这对你的伤害超出了“我假设代码在GPU上运行得更快”的话,请随时向我们抱怨。
我非常肯定,(fw/base/tests/RenderScriptTests/ImageProcessing/)中的Mandelbrot实现是在4.2GPU上运行的。
https://stackoverflow.com/questions/17055539
复制相似问题