月: 2018年1月
軽いチャートはないものか
Thinkpad R31にDebian Stretchを入れて使っている.ラズパイとは違い,せっかく液晶がついているのだからドル円のチャートを表示しっぱなしにしておきたい.ところがFXプライムのHTML5ブラウザ対応プライムチャートを表示すると,CPUロードが1を越えてしまい,そのまま表示し続けているとファンが回り出す.R31にファンが付いているのに初めて気付いた.これまでファンが回ったことなんてなかった.R31はTualatinコアのPentium 3-M 1133MHzなので,けっこう高性能CPUを積んでいる.チャートを表示するだけなら,軽々こなすはずなんだけど.どこか軽いチャートはないかなあ.
Google TPU2が今のところ最高性能
Interface誌の2018年2月号に,世界のAIチップの比較表が載っていた.GoogleのチップTPU2は性能の絶対値でも,性能消費電力比でもトップだった.すごいなGoogle.TPU2を超えたいものだが,FPGAでは無理そうな感じだ.リコンフィギャラブルな点を生かした特長がないとFPGAの立ち位置がないなあ.
同じ2月号の27ページに胸のすくようなインテルの発言が書いてあった.引用記事はもうなくなったみたいなので,そのまま書き写しておく.
GPUにはマシンラーニングに必要のない電気回路が数多く存在する.長年にわたって蓄積された価値のない回路で,非常に数が多い.
ニューラルネットワークは非常にシンプルで,ちょっとした行列の乗算と非線形性で成り立っている.直接シリコンを構築して行うことも可能なのだ.ニューラルネットワークのアーキテクチャに非常に忠実なシリコンを構築すればいい.これはGPUにはできないことだ.
もっと言ってやれと応援したくなるが,こうなると私の敵はnVidiaではなくてインテルになるのかもしれない.nVidia相手なら私でも勝てると踏んでいたが,インテル相手だと勝ち目がないような気がする.インテルってアルテラも買収しちゃったからね.
ビットコインの本質と欠点の簡単な解説
ビットコインの解説文書はたくさんあるが、どれもブロックチェインとハッシュの説明に枚数を割きすぎていて、肝心のビットコインの本質が見えにくくなっている。本質が見えにくいので欠点も見えてこない。本稿では、ブロックチェインとハッシュの説明をばっさり削って、ビットコインの本質だけを簡単にしかしていねいに解説したい。そして本質から見えてくるビットコインの欠点についても述べる。
ビットコインの本質を理解するのにブロックチェインの知識は実は必要ない。本質を理解すれば自然にブロックチェインの概念が導き出されるからだ。しかしハッシュの知識は必要だ。ハッシュについて知らない人は、wikipediaや他の文献を参照されたい。wikipediaのハッシュの解説は正確だが分かりにくいので、分からないと思ったら他の文献を探してほしい。きっとあなたにぴったりの分かる文献がネットのどこかにある。
ここからが本論だ。ビットコインを使った取引は、ある量のビットコインの所有権がAさんからBさんへ移ったという情報(この情報を以降は取引情報と呼ぶ)で表される。取引情報が正当なものであることを確かめるために、ハッシュを用いる。取引情報のハッシュ値が事前に定めた規則正しい数字の並びを含んでいる(このことを以降はハッシュ値がきれいと呼ぶ)とき、その取引情報は正当であると確かめられる。取引情報のハッシュ値をそのまま計算したのでは、ハッシュ値はまずきれいにならないので、乱数を取引情報に足してハッシュ値がきれいになるようにする。乱数をうまく探せば、その乱数を足した取引情報のハッシュ値はきれいになる。この乱数を探すことをマイニングと呼ぶ。乱数を探し出したマイナー(マイニングする人)には褒美にビットコインが与えられる。つまり、新規に取引が発生しなければマイニングすることはできない。
ビットコインで不正をしようとする悪者は取引情報を改ざんする。AさんからBさんへ所有権が移ったという取引情報を、Aさんから悪者へ所有権が移ったように変造する。変造したままだとハッシュ値が変わってきれいにならないので、乱数を選びなおしてハッシュ値をきれいにする。元の真正な取引情報の乱数探しは多くのマイナー達が分業して行うが、変造取引情報の乱数探しは悪者のみの手で行わなくてならないので計算量的に困難な作業になる。これで根気のない悪者はふるい落とされる。根気のある悪者は時間をかけて乱数探しを続け、いつかきれいなハッシュ値をもたらす乱数を見つけるかもしれない。しかしそれはビットコインのルール「互いに矛盾する取引情報が複数あったら、最も長い取引情報を真正なものとみなす」ではじかれる。長い取引情報とは何か。実はビットコインは取引の情報を削除するということはせず、最初から現在まで延々記録するのだ。最初のビットコインの持ち主がAさんだとして、それをBさんへ渡すとAさんからBさんへ渡した取引情報が生成される。そのときマイニングが行われ、取引情報のハッシュ値をきれいにする乱数が探し出される。次にBさんがCさんへビットコインを渡すと、先の取引情報にBさんがCさんに渡したという内容を足した取引情報が生成され、それについてもマイニングが行われ、取引情報のハッシュ値をきれいにする新たな乱数が探し出される。そしてCさんからDさんへ、DさんからEさんへと延々取引情報は追加され続け、その都度乱数が探し出される。先の悪者の話に戻ると、悪者はAさんからBさんへ渡したという取引情報をAさんから悪者へ渡したという取引情報に変造して、それを正しいものに見せかける乱数を自ら探し出して変造取引情報を完成させるが、悪者が変造取引情報を完成したころには、真正の取引情報はCさんDさんの辺りか、もっと先の方まで伸びている。なぜなら真正の方はたくさんのマイナーが力を合わせて乱数探しをするので、悪者より速く処理が終わるからだ。真正の方が長いので悪者の変造取引情報は信用されない.このような処理とルールにより、取引情報が次から次へと生成され続ける限り、悪者が不正をするのはとても困難になる。ここまで読んだ人は「ビットコインはよく考えられているなあ」「ビットコインは信用できる」と思うだろう。そして世の中の解説記事はたいていここで終わっている。しかし、事はそう甘くはないのである。
ビットコインには技術的な欠点がひとつ、地球環境に関わる欠点がひとつ、そして道義的な欠点がひとつあるのだ。それぞれ解説しよう。
まず技術的な欠点だが、それは決済のコストがスケーラブルではないので、ビットコインの取引が増えたら、やがて破たんすることである。何か商取引が行われて新たな取引情報が生成されたら、マイニングを行い乱数探しが完了するまで、その取引情報は正当なものと認められないことを思い出して欲しい。今はまだビットコインで決済できる店が少ないし、使う人も少ないので、取引情報の増加率は小さい。今マイニングしているメンバーだけで、なんとか乱数探しが間に合っている。ところがコンビニでビットコインの利用が可能になって、ビットコインの利用者が増えたらどうだろうか。今の何千倍、何万倍という取引情報が発生することになる。それら全てについて乱数探しをするにはマイナーの数が足りない。コンビニでコーヒー1杯買うのに、決済が完了するまでレジの前で5時間待たされるなんてことが普通に起こるようになるのだ。そしてそれは実際に起こった。去年の12月のことだ。まだコンビニで使えるようになってもいないのに、決済に4時間半かかるようになってしまった。これではこの先使い物になるはずがない。
次は地球環境に関わる問題だ。これはもうたいていの人が分かっていると思う。ビットコインの乱数探しのときは、乱数を作っては取引情報のハッシュ値を計算しすることを、きれいなハッシュ値になるまで繰り返す。ハッシュ値の計算はCPUで行うと遅いため、GPUカードを用いる。いちばんよく使われているGPUカードがnVidiaのGeForce GTX 1080だ。この消費電力が約180W。個人のマイナーはこのGPUカードを1枚から数十枚使う。組織でマイニングしている場合はこのGPUカードを数千から数万枚使う。1万枚使っているとすると、消費電力は180×10000=1800000W=1800kWだ。巨大なオフィスビルの空調の消費電力を遥かに超える。今世界には組織でマイニングしている連中が数十、個人でマイニングしているマイナーが数万人いる。マイニングにかかる電力は想像を絶する。それらの消費電力は大半が火力発電でまかなわれている。発電の基礎データはココを参照のこと。組織でマイニングしている連中は中国に多く、中国は石炭で発電している。こんなことをしたら地球温暖化を助長するだけだ。それなのに巷のパソコン雑誌には個人でのマイニングを勧めるような記事が氾濫している。なんと無責任なことだろうか。
最後に道義的な欠点だ。ビットコインの発案者サトシ・ナカモトを始め、仮想通貨の発案者は、仮想通貨を社会に発表する前に、自分の分をしこたまため込んでから行うのだ。社会に発表した後、仮想通貨が実際の通貨に変換できるようになったら、しこたまため込んだ自分の分を現金に変えてしまう。どれだけ自分の分をためこんでおくかは発案者の自由だ。こんなことが許されて、まともな経済活動と言えるだろうか。小学生でも分かる。「まともな訳ないだろう」と。
欠点だけ挙げて、建設的な意見を言わないのは私の主義に反するので、どうしたら良いかは言っておく。道義的な欠点は、仮想通貨の発行を公正でオープンな機関が行えば解決できるだろう。しかし、公正でオープンな機関というのはそうそうない。国の政府であっても、中国政府とかだったら、自分の分をしこたまため込んでから仮想通貨を発行することを平気でしてしまう。信用できるのは日本政府とか欧州の政府とか米国政府くらいか。技術的な欠点と地球環境的な欠点を解決するのははっきり言って難しい。ビットコインのセキュリティはマイニングに時間がかかることに依存しているからだ。マイニングを軽くしてしまうと、不正をする機会を増やしてしまう。消費電力を少なくするためにマイニングのアルゴリズムを軽くしても同じことが起こる。かなり大きな技術的ブレイクスルーがないと解決は難しいだろう。
現在は上に挙げたような状況なので、ビットコインや仮想通貨への正しい対応は「しばらく関わらない」というのが正しい。道義的な問題があるのだから、マイニングに個人が手を出すのもお勧めできない。悪党に手を貸すのと同じだからだ。
父親、かけ放題を使わない
母親はどこでも10分間まで無料プランに、父親は無制限かけ放題プランに加入している。母親はプランの料金の5倍くらい電話して元を取っているが、父親は従量プランでかけた方が安いくらいしか電話を使わない。もったいないので、かけ放題プランを止めたらと電話したが、このままが良いそうだ。まあ、毎年相場で何百万円も損をしているので、月に数千円節約できても焼け石に水なのだが。
このように高い料金プランに入っていても、少ししか通信しないユーザが電話会社にとっては上客なのだそうだ。こんなユーザがいればいるほど、電話会社は儲かる。そして、そんなユーザは結構いるのだとか。まったくもう、困ったものだよ。
トゥルサン シークレット・デュージェニー
妻が正月にすね肉シチューを圧力鍋容量限界いっぱいに作ってくれた。おいしかった。しかし、私の飲みかけ赤ワインを一本丸々投入してしまった。飲もうとしたらビンの底にちょっぴりしかワインが残っていなかった。えええぇー、料理に使うんならもっと安いワインにしてくれれば良かったものを。
代わりに、いなげやで赤ワインを買ってきてくれた。聞いたこともない銘柄だ。フランス産。料理に使ったワインより安いんだけど。まあいいか。
頭脳でチェ・ゲバラになろう
中国の圧政に抗議して焼身自殺するチベット僧侶のニュースを聞くたびに悲しくなる。しかし彼らは自殺するしかないのだ。相手が悪党であっても他人に危害を加えるのを良しとしない精神と、中国に危害を加えたら自分だけでなく身内、知り合いまで投獄され、殺されてしまうという現実があるからだ。しかし、何の罪もない人が死ぬしかないというのはいたたまれない。なんとかしなくてはいけない。オーストラリア人の有志が親チベット反中国のラジオ放送をしているのは知られているが、あまり表立って反中国の活動をしているという情報はない。これは仕方がないのか、いやそうではない。中国政府のような巨悪に対抗するためには、表立って反旗を翻すのは良策ではないのだ。そんなことをすると、すぐに見つけ出されて関係ない人も含めて殺されてしまう。こっそり分からないように反抗しなくてはならない。こっそりと言っても中国兵士を事故に見せかけて殺すというようなことはしない。兵隊が一人くらい死んでも中国政府は痛くも痒くもない。もし、事故死に少しでも不審な点があれば、徹底的に調べられて、結局自分も含めて関係ない人まで殺されてしまう。知恵を絞って、頭脳で反抗するのだ。中国には自分が攻撃されていると気が付かないように攻撃する。これは簡単ではない。しかし不可能でもない。そして解はひとつではない。考えれば考えるほど、さらに良い策が見つかる可能性がある。頭脳はこんなことに使っても良いのだ。学問をするだけが頭脳の仕事ではない。
自分にはそんな能力はないから、何も手助けできないって?いや、そんなことはない。情報発信をすることで力になることができる。チベットの人が情報発信をすると、発信源を突き止められたときに中国から危害を加えられてしまう。しかし、国外からなら中国政府も簡単には攻撃できない。発信した情報が中国に対抗できる頭脳の持ち主に伝われば、それは巨悪を倒す力になる。
RAW現像はshotwellでできた
これまでカメラで撮影したRAWデータの現像はニコンのCapture NX-Dで行っていた。このソフトはWindows用とMac用しかない。linuxでの現像はどうなるのだろうと、とりあえずカメラをPCに接続してみた。するとshotwellというソフトが起動した。見た目はニコンのView NXとほぼ同じ。カメラからコピーする先のディレクトリもView NXと同じで分かりやすい。コピーしたNEFファイル(RAWデータ)はshotwellで現像できる。現像はshotwell自体が行う方法と、カメラに任せる方法が選べる。両方試してみたがカメラに任せた方が良い結果が得られた。画像の切り取りや拡大縮小はshotwellではできなくて、これは現像した後にgimpで処理する。この辺りはCapture NX-Dの方が優れていた。gimpで書き出した写真が下。