両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン |
app:vfpbench [2014/11/30 17:30] – [更新履歴] oga | app:vfpbench [2019/06/07 20:58] (現在) – [Link] oga |
---|
| |
| |
* FPU 用のベンチマークソフト ARMv7A, ARMv8A (arm64), x86, x64(x86_64) 対応 (ARM VFPv3, VFPv4, NEON, AArch64 NEON, SSE2, AVX1) | * FPU 用のベンチマークソフト ARMv7A, ARMv8A (arm64), x86, x64(x86_64), MIPS32/MIPS64 対応 (ARM VFPv3, VFPv4, NEON, AArch64 NEON, SSE2, AVX1, MIPS-FPU) |
* iOS 7.0〜 | * iOS 7.0〜 |
* [[https://itunes.apple.com/jp/app/vfp-benchmark/id806083725?mt=8|Download (App Store): "VFP Benchmark" iOS iPhone / iPod touch / iPad]] | * [[https://itunes.apple.com/jp/app/vfp-benchmark/id806083725?mt=8|Download (App Store): "VFP Benchmark" iOS iPhone / iPod touch / iPad]] |
* Android 3.0~ | * Android 2.2~ |
* [[https://play.google.com/store/apps/details?id=jp.flatlib.flatlib3.vfpbench|Download (Google Play): "VFP Benchmark" Android Smartphone / Tablet]] | * [[https://play.google.com/store/apps/details?id=jp.flatlib.flatlib3.vfpbench|Download (Google Play): "VFP Benchmark" Android Smartphone / Tablet]] |
* [[https://play.google.com/store/apps/details?id=jp.flatlib.flatlib3.vfpbenchw|Download (Google Play): "VFP Benchmark for Android Wear" Android Wear]] | * [[https://play.google.com/store/apps/details?id=jp.flatlib.flatlib3.vfpbenchw|Download (Google Play): "VFP Benchmark for Android Wear" Android Wear]] |
===== Link ===== | ===== Link ===== |
| |
| * [[https://github.com/hiroog/vfpbench|GitHub]] |
* [[https://itunes.apple.com/jp/app/vfp-benchmark/id806083725?mt=8|Download "VFP Benchmark" (App Store)]] | * [[https://itunes.apple.com/jp/app/vfp-benchmark/id806083725?mt=8|Download "VFP Benchmark" (App Store)]] |
* [[https://play.google.com/store/apps/details?id=jp.flatlib.flatlib3.vfpbench|Download "VFP Benchmark" (Google Play)]] | * [[https://play.google.com/store/apps/details?id=jp.flatlib.flatlib3.vfpbench|Download "VFP Benchmark" (Google Play)]] |
| |
* [[:opengl:vfpbenchlog|VFP Benchmark Log 測定結果]] | * [[:opengl:vfpbenchlog|VFP Benchmark Log 測定結果]] |
| |
| |
| 注意点: 現在のバージョンでは非対称マルチコア CPU (Cortex-A15 + Cortex-A7 等) の場合、スレッド実行時の結果が正しいものになりませんのでご注意ください。 |
| |
| |
===== 更新履歴 ===== | ===== 更新履歴 ===== |
| |
| * 2019/06/01 v2.0 : console version。big.LITTLE 対応, Loop scale 対応, half-precision fp (fullhp) 対応 |
| * 2015/07/12 v1.3.5 : x86/x64 FMA3 対応 |
| * 2015/03/06 v1.3.4 : Android TV 対応 |
| * 2015/01/18 v1.3.3 : Android 版で MIPS の FPU 命令に対応 |
| * 2015/01/15 v1.3.2 : Android 2.2/2.3 対応 |
* 2014/11/30 v1.3.1 : Android 4.3 以前で動作しなくなっていたバグ修正。default loop 値の調整 | * 2014/11/30 v1.3.1 : Android 4.3 以前で動作しなくなっていたバグ修正。default loop 値の調整 |
* 2014/11/09 v1.3 : Android 64bit 対応 (arm64-v8a, x86_64, mips64 対応), iOS 版は最初から arm64 対応済み | * 2014/11/09 v1.3 : Android 64bit 対応 (arm64-v8a, x86_64, mips64 対応), iOS 版は最初から arm64 対応済み |
| ARMv7A (armv7s) | ◎ | ◎ | ◎ | VFPv4-D32 / NEON | fmuls, fadds, fmacs, vfma.f32 | fmuld, faddd, fmacd, vfma.f64 | vmul.f32, vadd.f32, vmla.f32, vfma.f32 | -- | | | ARMv7A (armv7s) | ◎ | ◎ | ◎ | VFPv4-D32 / NEON | fmuls, fadds, fmacs, vfma.f32 | fmuld, faddd, fmacd, vfma.f64 | vmul.f32, vadd.f32, vmla.f32, vfma.f32 | -- | |
| ARMv8A (arm64) | ◎ | ◎ | -- | AArch64 / NEON | fmul s, fadd s, fmadd s | fmul d, fadd d, fmadd d | fmul.4s, fadd.4s, fmla.4s | fmul.2d, fadd.2d, fmla.2d | | | ARMv8A (arm64) | ◎ | ◎ | -- | AArch64 / NEON | fmul s, fadd s, fmadd s | fmul d, fadd d, fmadd d | fmul.4s, fadd.4s, fmla.4s | fmul.2d, fadd.2d, fmla.2d | |
| x86 (IA-32) | -- | ◎ | ◎ | SSE2 / AVX1 | mulss, addss | mulsd, addsd | mulps, addps, vmulps, vaddps | mulpd, addpd, vmulpd, vaddpd | | | x86 (IA-32) | -- | ◎ | ◎ | SSE2 / AVX1 / FMA3 | mulss, addss, vfmaddss | mulsd, addsd, vfmaddsd | mulps, addps, vmulps, vaddps, vfmaddps | mulpd, addpd, vmulpd, vaddpd, vfmaddpd | |
| x64 (x86_64) | -- | ◎ | ◎ | SSE2 / AVX1 | mulss, addss | mulsd, addsd | mulps, addps, vmulps, vaddps | mulpd, addpd, vmulpd, vaddpd | | | x64 (x86_64) | -- | ◎ | ◎ | SSE2 / AVX1 / FMA3 | mulss, addss, vfmaddss | mulsd, addsd, vfmaddsd | mulps, addps, vmulps, vaddps, vfmaddps | mulpd, addpd, vmulpd, vaddpd, vfmaddpd | |
| MIPS32-R2 (mips) | -- | ◎ | -- | FPU | -- | -- | -- | -- | | | MIPS32-R2 (mips) | -- | ◎ | -- | FPU | mul.s, add.s, madd.s | mul.d, add.d, madd.d | -- | -- | |
| MIPS64-R6 (mips64) | -- | ◎ | -- | FPU | -- | -- | -- | -- | | | MIPS64-R6 (mips64) | -- | ◎ | -- | FPU / PS / MSA | mul.s, add.s, madd.s | mul.d, add.d, madd.d | -- | -- | |
| |
| |
| ARMv8A AArch64 NEON | 3 operand | 3 operand (FMA3) | | | ARMv8A AArch64 NEON | 3 operand | 3 operand (FMA3) | |
| x86 / x64 | 3 operand | 3 operand (FMA3) | | | x86 / x64 | 3 operand | 3 operand (FMA3) | |
| | MIPS32/MIPS64 | 3 operand | 4 operand (FMA4) | |
| |
| |
* x86/x64 の fma には未だ対応しておりません。その代わり加算器と乗算器を並列実行できるように mul/add の interleave に対応しています。 | * x86/x64 の fma には未だ対応しておりません。その代わり加算器と乗算器を並列実行できるように mul/add の interleave に対応しています。 |
* x64 の内容は x86 同様ですがレジスタ数が多いためコードが異なっています。 | * x64 の内容は x86 同様ですがレジスタ数が多いためコードが異なっています。 |
* ARMv5TE/mips/mips64 では Matrix Test のみ実行できます。 | * ARMv5TE では Matrix Test のみ実行できます。 |
| * 現在 MIPS32/MIPS64 の Paired Single (PS), Mips SIMD Architecture (MSA) には非対応です。 |
| |
| |