Renderscript に問題があります。Renderscript GPU 計算のパフォーマンスを評価するためにいくつかのテストを行いました。ImageProcessing Renderscript Benchmark (android/platform/frameworks/rs/java/tests/ImageProcessing) を使用しました。また、「adb shell setprop debug.rs.default-CPU-driver 1」を使用して、スクリプトを強制的に CPU で実行しました。
得られた実行時間は次のとおりです。
GPU CPU
Test Levels Vec3 Relaxed 13.594595ms 13.413333ms
Test Levels Vec4 Relaxed 14.4ms 14.027778ms
Test Levels Vec3 Full 14.594203ms 15.0ms
Test Levels Vec4 Full 15.227273ms 15.242424ms
Test Blur radius 25 388.0ms 379.66666ms
Test Intrinsic Blur radius 25 52.842106ms 52.1ms
Test Greyscale 13.302631ms 13.493333ms
Test Grain 136.25ms 137.5ms
Test Fisheye Full 57.61111ms 59.235294ms
Test Fisheye Relaxed 59.764706ms 57.055557ms
Test Fisheye Approximate Full 54.473682ms 58.555557ms
Test Fisheye Approx Relaxed 58.555557ms 55.833332ms
Test Vignette Full 28.885714ms 27.86111ms
Test Vignette Relaxed 29.028572ms 28.166666ms
Test Vignette Approximate Full 22.288889ms 21.680851ms
Test Vignette Approx Relaxed 21.553192ms 21.76087ms
Test Group Test (emulated) 6.4166665ms 6.429487ms
Test Group Test (native) 6.335443ms 6.3757963ms
Test Convolve 3x3 38.653847ms 39.423077ms
Test Intrinsics Convolve 3x3 4.2777777ms 4.3608694ms
...
CPU と GPU の実行に違いは見られません。S6 デバイスは常に GPU ではなく CPU を選択しているようです。他のデバイスで同じテストを実行しましたが、GPU の実行は CPU よりもかなり高速です。
ARM マリ Renderscript ドライバーは S6 デバイスに含まれていますか?