iPhone 5s に遅れることおよそ 1年、
64bit 対応の Android と ARM64 端末がリリースされました。
Nexus 9 の CPU core は NVIDIA の Denver。
Processor : NVIDIA Denver 1.0 rev 0 (aarch64) processor : 0 processor : 1 Features : fp asimd aes pmull sha1 sha2 crc32 CPU implementer : 0x4e CPU architecture: AArch64 CPU variant : 0x0 CPU part : 0x000 CPU revision : 0 Hardware : Flounder Revision : 0000 Serial : 0000000000000000
少々わかりにくいですが “processor” の行が 2つあるので dual core です。
$ cat /sys/devices/system/cpu/online 0-1
vfpbenchmark は下記のとおり。
single core 時の浮動小数点演算能力はほぼ SHILED Tablet (Cortex-A15 2.2GHz)
と同等で、トータル性能では Core 数の分だけ落ちています。
あくまで 32bit の結果なので後ほど 64bit (AArch64) でも試してみたいと思います。
// Nexus 9 ARCH: ARMv7A CPU core: 2 VFP: VFPv4-D32 NEON FMA: Yes NEON: Yes SingleT SP max: 17.799 GFLOPS SingleT DP max: 4.423 GFLOPS MultiT SP max: 34.582 GFLOPS MultiT DP max: 8.719 GFLOPS
ro.product.cpu.abi=arm64-v8a ro.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi ro.product.cpu.abilist32=armeabi-v7a,armeabi ro.product.cpu.abilist64=arm64-v8a
arm64-v8a, armeabi-v7a, armeabi 3つの ABI に対応していました。
Android が現在 NDK でサポートしている ABI は下記の 7種類です。
armeabi ARMv5TE armeabi-v7a ARMv7A VFPv3-D16 softfp (VFPv3-D32, NEON, hard-float) arm64-v8a ARMv8A (AArch64) x86 x86 (IA-32) x86_64 x64 mips MIPS32-R1 miips64 MIPS64
ちなみに iOS で開発用の lib を作ると 5種類。
armv7 ARMv7A VFPv3-D32+NEON softfp armv7s ARMv7A VFPv4-D32+NEON softfp arm64 ARMv8A (AArch64) i386 x86 simulator x86_64 x86_64 simulator
GPU は OpenGL ES 3.1 の Context を返します。
GL_VERSION: OpenGL ES 3.1 NVIDIA 343.00 GL_RENDERER: NVIDIA Tegra GL_VENDOR: NVIDIA Corporation GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.10
対応しているテクスチャフォーマットは DXT, ETC1, ETC2/EAC, ASTC 。
詳細は下記ページに掲載しています。