2015年6月15日月曜日

Google cardboardをおためし

えー、いまさらですね。まったくもって、いまさら。

ことのはじまりは、先日GoogleIO 2015のkey note speechをみていて、最後の方に
「去年紹介したんだけど、Google cardboardがあたらしくなったよ」的なのを聞いて、なにー!ってなったのです。まぁつまり2014のもきいてなかったと。やむをえないですなぁ。まったく。

さっそくぐぐってみると、やっぱし100均でやったひとがいるんですね。日本だねぇ。
1000円でハコスコが買えることが判明するも、やっぱ自作のほうが楽しいかな?ということで、道を踏み外しました。。。
Daisoを2軒ほど回ってみたんだけど、、、ない。ないよー、そのレンズ。んー、困ったなぁということで、CanDoで別物を買ってみたんだけど、、、ハマった。はまりました。
そもそも、焦点距離45mmって何よ?ってことになるわけです。
それで、それがどこに効いてくるか?ってことなんだよね。
んで、まー、とりあえず組んでみたんだけど、GoogleからDLした図面通りに作ると、きちんと見えないですわ。
あとね、工作用紙だと薄すぎてレンズのところがうまくいかないね。レンズは3つ折りの真ん中にポコっとはまるようになっていると思われるので、そこを考えないとダメですね。
ということで、私の後悔リストですが、、、
  • Googleの図面どおりやるなら、焦点距離45mm(前後)のレンズが必須
  • 適当なレンズがない場合は、スマホの画面からレンズまでの距離が焦点距離になるように修正する。
  • 焦点距離の測り方は、室内でレンズを垂直に動かして蛍光灯がばっちりピンが合う高さ(今回は15cmでした)
  • レンズを支える部分はレンズぐらいの厚みのある紙があったほうがいい(つまり、ダンボールだね)
  • レンズの直径がでかい場合は、少なくとも真ん中の紙の穴をレンズと同じサイズにするとすわりがよい
  • それ以外はテキトーでok
  • めんどくさい人にはハコスコに1,000円出す価値があることをお知らせしておきます。
んで、こんなかんじでできました♪
あっ、そうそう、最終的に外箱も工作用紙使ってないんで、工作用紙は買わないほうがいいですよ~っと。

2015年1月8日木曜日

パフォーマンスの比較

気がついてみると、もう一年も経つんですね。
はやいもんですなぁ。
どうりでおっさんになるわけだ。やむをえない。
かなりほったらかしにしていましたが、ヒマをみてぼちぼちとやっていきます。

さて、パフォーマンス比較ですがやっとこさまとめました。
といっても、たいした結果が出たわけではないのですが…
先に言っておくとほとんど変わりがありませんでした。 

時間もあいて前回とは別にまた新たにビルドしたりしましたので、
ここで現状の実験に使った環境を整理しておきます。

比較は3種類で、yoctoのGCCを使ったarmv6, armv6hfとlinaroのarmv6hfです。
linaroはプリビルドのツールチェインではなく、yoctoでビルドされたツールチェインです。
linaroのパッチはあたってるものと信じています(w 

各レイヤのハッシュは下記の通りで、実験時点でのdaisyのHEADです。
実験時点でdizzyも出ているのですが、daisyを使ったのは、
raspberrypiでdizzyのブランチが見つからないためです。
meta
meta-yocto
meta-yocto-bsp = "daisy:9bb6f7f3f00c66abe45e97286323496694ef1609"
meta-raspberrypi = "daisy:946b69299737cc2f1378c864f1b9075280db1b53"
meta-oe
meta-networking = "daisy:d3d14d3fcca7fcde362cf0b31411dc4eea6d20aa"
meta-linaro
meta-linaro-toolchain = "daisy:bc63e777ad2748b8bfa7fa70ffd74700fa21a567"
これで、core-image-satoをビルドしました。
その時のカーネルサイズと展開後のrootfsのトータルサイズをdu -sbで調べたものが下記です。

imagearmv6armv6hflinaro-armv6hf
kernel6,371,5326,371,5326,346,956
rootfs163,050,467162,170,553161,962,637

サイズとしてはそれなりに違いますね。armv6とlinaro-armv6hfとではrootfsで1Mほどサイズが違いますね。

次に、パフォーマンスの比較に使ったのは、lmbenchです。
 今までnbenchでやってきましたが、結果の見方がいまいちよくわからないのと、
コードも古そうなので浮気しましたw
lmbenchもすべてやったわけではなく、下記の表の項目のみです。
networkやdisk ioなどは飛ばしています。


testarmv6armv6hflinaro-armv6hf
integer bit1.461.461.47
integer add1.531.531.53
integer mul7.357.347.35
integer div140.81140.66140.69
integer mod49.0749.1048.98
int64 bit2.942.942.93
uint64 add3.213.203.21
int64 mul14.7014.7314.71
int64 div543.82544.35544.77
int64 mod352.95353.23355.10
float add11.6311.6511.67
float mul11.6211.6411.63
float div27.6827.6527.70
double add11.6411.6611.67
double mul13.1013.1113.11
double div48.0648.1448.13
float bogomflops67.7767.8767.97
double bogomflops89.6389.6789.97
lat_pipe44.6943.6947.07
lat_ctx -s 128k processes 4224.94221.91247.12
lat_sem5.956.386.15
bw_mem 1M rd187.02187.16186,62
bw_mem 1M wr1484.261483.321483.03

結果はそれぞれ3回試行して平均をとってあります。

それなりに傾向が出ているところもあるんですが、
全体的にはほとんど差がないというところかと思います。
hfのほうが若干悪いようにみえるところもありますね。