ARM でも x86 でもない、MIPS の CPU を搭載した
Android 端末 ainol Novo 7 Paladin を使ってみました。
Ingenic JZ4770
CPU core: XBurst (MIPS32)
GPU core: Vivante GC860
CPU/GPU (OpenGL ES Extension 等) は下記に追加
・CPU/GPU: Novo7 Paladin Android 4.0 JZ4770 MIPS XBurst GC860
以下抜粋
下記の GPU 機能比較表にも追加しました
・Mobile GPU の比較
GPU は Unified Shader で FragmentShader も highp 対応。
テクスチャ圧縮フォーマットは DXT1/3/5 (S3TC)、
24bit depth に対応しており depth_texture もあります。
Vertex の Stream 入力が若干少なめ。
レンダリングは 2048 までですが使えるテクスチャサイズが
8192 と突出しています。
NDK を使って実際にシェーダーを走らせてみました。
下記のベンチマーク結果の表に追加しています。
・Mobile GPU bench mark
公式スペックもフィルレートがあまり高くなかったので、
GC800 の世代的には PVR SGX530/535 あたりと同等なのかもしれません。
より高速な GPU として GC1000/GC2000/GC4000 も存在しています。
・Vivante Graphics Processor IP
Freescale i.MX5 系の GPU は AMD Z430 ですが、すでに Qualcomm
に売却されており Adreno と名称が変わっています。
i.MX6 では Vivante の新しい GPU core が採用されるようです。
●MIPS 版 NDK
Google の Android NDK には MIPS が含まれていませんが、
下記の MIPS サイトからダウンロードすることができます。
・MIPS Developers: Download MIPS Android NDK
既存の NDK (ARM/x86) をすべて含んでいるため、同バージョンの
NDK と置き換えるだけで mips 対応になります。
例えばすでに C:/android/android-ndk-r7 というフォルダがあるなら
1. c:/android/android-ndk-r7 を削除
1. android-ndk-r7m-windows-20120103.zip を展開
2. android-ndk-r7m を android-ndk-r7 にリネームして C:/android に入れる
これだけです。ARM, x86, MIPS すべてに対応します。
MIPS 対応 NDK では新しく3つのアーキテクチャが追加されます。
倍になりました。既存のものと合わせてまとめると下記の通り。
XBurst は ase もあり mips-r2 のように見えますが Paladin は mips でした。
(2012/02/14 追記: NDK では mips ですが ROM は mips-r2 で build されているそうです)
NDK の Application.mk 等に下記のように記述すれば全対応になります。
バイナリ容量はかなり増えそうです。
RenderScript はまだ試していません。
(2012/02/14 追記: NDK r7 からは 「APP_ABI := all」と記述するだけで全対応になります。)
(2012/04/17 追記: NDK r7bm から mips-r2, mips-r2-sf が無くなりました)
Android 端末 ainol Novo 7 Paladin を使ってみました。
Ingenic JZ4770
CPU core: XBurst (MIPS32)
GPU core: Vivante GC860
CPU/GPU (OpenGL ES Extension 等) は下記に追加
・CPU/GPU: Novo7 Paladin Android 4.0 JZ4770 MIPS XBurst GC860
以下抜粋
processor : MIPS-compatible processor JZ4770 cpu model : Ingenic Xburst ASEs implemented : mxu Features : fpu mxu dsp lowpower GL_VERSION: OpenGL ES 2.0 GL_RENDERER: GC860 core GL_VENDOR: Vivante Corporation GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 1.00
下記の GPU 機能比較表にも追加しました
・Mobile GPU の比較
GPU は Unified Shader で FragmentShader も highp 対応。
テクスチャ圧縮フォーマットは DXT1/3/5 (S3TC)、
24bit depth に対応しており depth_texture もあります。
Vertex の Stream 入力が若干少なめ。
レンダリングは 2048 までですが使えるテクスチャサイズが
8192 と突出しています。
NDK を使って実際にシェーダーを走らせてみました。
下記のベンチマーク結果の表に追加しています。
・Mobile GPU bench mark
公式スペックもフィルレートがあまり高くなかったので、
GC800 の世代的には PVR SGX530/535 あたりと同等なのかもしれません。
より高速な GPU として GC1000/GC2000/GC4000 も存在しています。
・Vivante Graphics Processor IP
Freescale i.MX5 系の GPU は AMD Z430 ですが、すでに Qualcomm
に売却されており Adreno と名称が変わっています。
i.MX6 では Vivante の新しい GPU core が採用されるようです。
●MIPS 版 NDK
Google の Android NDK には MIPS が含まれていませんが、
下記の MIPS サイトからダウンロードすることができます。
・MIPS Developers: Download MIPS Android NDK
既存の NDK (ARM/x86) をすべて含んでいるため、同バージョンの
NDK と置き換えるだけで mips 対応になります。
例えばすでに C:/android/android-ndk-r7 というフォルダがあるなら
1. c:/android/android-ndk-r7 を削除
1. android-ndk-r7m-windows-20120103.zip を展開
2. android-ndk-r7m を android-ndk-r7 にリネームして C:/android に入れる
これだけです。ARM, x86, MIPS すべてに対応します。
MIPS 対応 NDK では新しく3つのアーキテクチャが追加されます。
倍になりました。既存のものと合わせてまとめると下記の通り。
Android NDK IA GCC fpu simd --------------------------------------------------------------------------- armeabi ARMv5TE -march=armv5te -- -- armeabi-v7a ARMv7A -march=armv7-a -mfpu=vfp VFP (NEON) x86 IA-32 -march=i686 -mfpmath=sse -msse3 SSE SSE3 mips MIPS32 R1 -mips32 -mhard-float FPU -- mips-r2 MIPS32 R2 -mips32r2 -mhard-float FPU (DSP ASE) mips-r2-sf MIPS32 R2 -mips32r2 -msoft-float -- --
XBurst は
(2012/02/14 追記: NDK では mips ですが ROM は mips-r2 で build されているそうです)
NDK の Application.mk 等に下記のように記述すれば全対応になります。
APP_ABI := armeabi armeabi-v7a x86 mips mips-r2 mips-r2-sf
バイナリ容量はかなり増えそうです。
RenderScript はまだ試していません。
(2012/02/14 追記: NDK r7 からは 「APP_ABI := all」と記述するだけで全対応になります。)
(2012/04/17 追記: NDK r7bm から mips-r2, mips-r2-sf が無くなりました)