我知道那的renderScript的设计是为了掩盖什么处理器我运行的事实,但有什么办法编写代码,使得在GPU专用计算功能的设备(目前,Nexus 10的),它会运行GPU?有没有办法告诉脚本的功能是否在GPU上运行?
www.leapconf.com/downloads/LihuaZhang-MulticoreWare.pdf建议如果我不使用全局变量,我不使用递归,并且不在内核中的任何地方调用rsDebug,它将在GPU上运行; 那是对的吗?
我希望看到人们以某种方式验证过的短脚本将作为纯粹基于计算的任务运行在gpu上(例如,没有图形工作).
总的来说,有关 Nexus 10 行为的这些说法是正确的。关于调用某些 RS 运行时函数(例如,不要调用 rsGetAllocation),还有一些其他事情会导致 CPU 运行函数。然而,我认为不是分配或绑定指针的全局变量在 4.2 中是可以的。
展望未来,许多限制都将放宽(全局限制是最重要的)。
就查看内核运行位置而言:4.2 中您无法做太多事情来弄清楚这一点。我们还没有看到这样做的令人信服的理由,但如果事实证明这真的很重要,我们可以通过 systrace 之类的东西添加而不会有太多困难。如果您能证明为什么除了“我认为代码在 GPU 上运行得更快”之外会给您带来伤害,请随时向我们投诉。
我非常确定 ImageProcessing (fw/base/tests/RenderScriptTests/ImageProcessing/) 中的 Mandelbrot 实现在 4.2 中的 GPU 上运行。
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |