Android RenderScript在x86 CPU上执行速度较慢
我尝试在两款手机上运行RenderScript,一款是2GHz Intel Atom Z2580 CPU双核,另一款是2.2GHz高通Snapdragon 800 CPU四核。虽然RenderScript确实使程序能够在两台设备上并行运行,但我发现同一程序在两台设备上的绝对性能非常不同。我做了以下实验:Android RenderScript在x86 CPU上执行速度较慢,android,performance,intel,renderscript,Android,Performance,Intel,Renderscript,我尝试在两款手机上运行RenderScript,一款是2GHz Intel Atom Z2580 CPU双核,另一款是2.2GHz高通Snapdragon 800 CPU四核。虽然RenderScript确实使程序能够在两台设备上并行运行,但我发现同一程序在两台设备上的绝对性能非常不同。我做了以下实验: 使用adb外壳下的“setprop debug.rs.max-threads”将最大运行线程限制为1(仅使用1个内核) 使用RenderScript的ScriptIntrinsicYuvToRG
如果这是真的,那么有没有办法为基于英特尔x86 cpu的RenderScript设备选择运行时编译器?您实际上看到ARM内部函数比x86内部函数优化得多。如果您看到x86平台使用为ARM生成的RS代码进行二进制翻译(特别是使用NEON),我想您会看到速度下降了3-4倍以上。两款手机都运行Android 4.2.2,请回答。对不起,我可能有更多的澄清问题。什么是ARM内部函数和x86内部函数?您的意思是设备上当前的libbcc将只编译RS字节码到ARM机器码吗?有编译器开关吗?如果没有,是否有计划将其编译为x86机器代码?内部函数不是由libbcc生成的,它们是内置函数。在手臂上,它们使用手动调谐的霓虹灯组件。我们没有用于x86的等效SSE程序集,只是一个合理的C版本。libbcc将为您所在的任何平台生成适当的机器代码。这就回答了问题。谢谢!