ドキュメントを見ればわかることだが、Cubieboardにはフラッシュメモリ(NAND)ものっておりそこにはデフォでAndroidが存在する。ここはそのまま使いたいのでOSを別途入れる時には常にmicroSDに入れてつかうようにする。 NAND Flash 用のイメージも存在するのでそれを使って上書きすることも可能。 しかし、ブートOSを切り替えて遊ぶにはmicroSD試した方が何かと都合がよさそうだし。 今回は、「Cubieez 0.1 RC2 (A20 version)」を入れてみる。
Cubieez 0.1 RC2 (A20 version)
アーカイブをダウンロード、7zから抽出してdd
[root@sarah Cubieboard2]# 7za e cubieezRC2_A20.7z 7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=ja_JP.UTF-8,Utf16=on,HugeFiles=on,2 CPUs) Processing archive: cubieezRC2_A20.7z Extracting cubieezRC2_A20.img Everything is Ok Size: XXXXX Compressed: XXXXXX
[root@sarah Cubieboard2]# dd if=./cubieezRC2_A20.img of=/dev/sde 3854336+0 レコード入力 3854336+0 レコード出力 1973420032 バイト (2.0 GB) コピーされました、 669.763 秒、 2.9 MB/秒
Cubieboard に差し込んで、boot Terminal を起動して、rootで# cubie-configを実行(デスクトップのREADMEに最初の起動時にそうしろと書いてある)
ファイルシステムを拡張したり、ロケール、タイムゾーン、SSHを起動させたり、選択していじればわかる。 キーボードレイアウトは合ってないので、ここで合わす。モデルはわからないのだが、HP社のを使っているので「Hewlett-Packard Internet Keyboard」を選んでおき、レイアウトに「Japanese-Japanese(OADG 109A)」を選び後はデフォルトにしておく。 完了したら「Finish」して再起動
ベンチマーク
デスクトップのREADMEをみると/rootにベンチマークや、Mali400ソースやらがおいてあるらしい。見てみると確かに。 「tinymembench」というベンチマークが置いてあったので早速実行。
root@cubieez:~/tinymembench# ./tinymembench tinymembench v0.3.9 (simple benchmark for memory throughput and latency) ========================================================================== == Memory bandwidth tests == == == == Note 1: 1MB = 1000000 bytes == == Note 2: Results for 'copy' tests show how many bytes can be == == copied per second (adding together read and writen == == bytes would have provided twice higher numbers) == == Note 3: 2-pass copy means that we are using a small temporary buffer == == to first fetch data into it, and only then write it to the == == destination (source -> L1 cache, L1 cache -> destination) == == Note 4: If sample standard deviation exceeds 0.1%, it is shown in == == brackets == ========================================================================== C copy backwards : 228.9 MB/s C copy : 765.7 MB/s C copy prefetched (32 bytes step) : 739.7 MB/s C copy prefetched (64 bytes step) : 739.2 MB/s C 2-pass copy : 578.5 MB/s C 2-pass copy prefetched (32 bytes step) : 631.6 MB/s C 2-pass copy prefetched (64 bytes step) : 631.4 MB/s C fill : 1611.0 MB/s --- standard memcpy : 834.2 MB/s (0.4%) standard memset : 1610.0 MB/s --- NEON read : 1057.4 MB/s NEON read prefetched (32 bytes step) : 1176.1 MB/s NEON read prefetched (64 bytes step) : 1207.3 MB/s (0.1%) NEON copy : 803.1 MB/s (0.1%) NEON copy prefetched (32 bytes step) : 781.7 MB/s NEON copy prefetched (64 bytes step) : 808.8 MB/s NEON unrolled copy : 780.3 MB/s NEON unrolled copy prefetched (32 bytes step) : 732.9 MB/s NEON unrolled copy prefetched (64 bytes step) : 757.6 MB/s (0.1%) NEON copy backwards : 775.8 MB/s NEON copy backwards prefetched (32 bytes step) : 761.7 MB/s (0.1%) NEON copy backwards prefetched (64 bytes step) : 797.6 MB/s NEON 2-pass copy : 635.7 MB/s (0.1%) NEON 2-pass copy prefetched (32 bytes step) : 668.2 MB/s NEON 2-pass copy prefetched (64 bytes step) : 682.6 MB/s NEON unrolled 2-pass copy : 581.5 MB/s (0.4%) NEON unrolled 2-pass copy prefetched (32 bytes step) : 592.3 MB/s (2.7%) NEON unrolled 2-pass copy prefetched (64 bytes step) : 616.6 MB/s (0.4%) NEON fill : 1610.9 MB/s (0.5%) NEON fill backwards : 1607.1 MB/s ARM fill (STRD) : 1610.5 MB/s ARM fill (STM with 8 registers) : 1610.4 MB/s (0.8%) ARM fill (STM with 4 registers) : 1588.1 MB/s (0.6%) ARM copy prefetched (incr pld) : 762.3 MB/s (0.4%) ARM copy prefetched (wrap pld) : 777.8 MB/s (1.1%) ARM 2-pass copy prefetched (incr pld) : 647.6 MB/s (0.7%) ARM 2-pass copy prefetched (wrap pld) : 613.6 MB/s (0.6%) ========================================================================== == Memory latency test == == == == Average time is measured for random memory accesses in the buffers == == of different sizes. The larger is the buffer, the more significant == == are relative contributions of TLB, L1/L2 cache misses and SDRAM == == accesses. For extremely large buffer sizes we are expecting to see == == page table walk with several requests to SDRAM for almost every == == memory access (though 64MiB is not nearly large enough to experience == == this effect to its fullest). == == == == Note 1: All the numbers are representing extra time, which needs to == == be added to L1 cache latency. The cycle timings for L1 cache == == latency can be usually found in the processor documentation. == == Note 2: Dual random read means that we are simultaneously performing == == two independent memory accesses at a time. In the case if == == the memory subsystem can't handle multiple outstanding == == requests, dual random read has the same timings as two == == single reads performed one after another. == ========================================================================== block size : single random read / dual random read 1024 : 0.0 ns / 0.0 ns 2048 : 0.0 ns / 0.0 ns 4096 : 0.0 ns / 0.0 ns 8192 : 0.0 ns / 0.0 ns 16384 : 0.0 ns / 0.0 ns 32768 : 0.1 ns / 0.0 ns 65536 : 6.3 ns / 10.8 ns 131072 : 9.7 ns / 15.2 ns 262144 : 13.9 ns / 20.6 ns 524288 : 115.9 ns / 182.6 ns 1048576 : 173.6 ns / 243.3 ns 2097152 : 205.5 ns / 266.5 ns 4194304 : 227.7 ns / 282.9 ns 8388608 : 239.3 ns / 291.5 ns 16777216 : 251.7 ns / 306.7 ns 33554432 : 269.4 ns / 337.4 ns 67108864 : 308.9 ns / 415.2 ns root@cubieez:~/tinymembench#
Raspberry Pi の結果が以下にあるけど、比べるとやっぱし速そう。 https://github.com/ssvb/tinymembench/wiki/Raspberry-Pi-%28BCM2708%29 情報
Info: users: root / cubie unified password: cubieboard (change it on first boot, please) Default IP: 192.168.1.124 (edit /etc/network/interfaces or use NetworkManager)