憂鬱な午後のひととき
・↓単に日本語版Wikipediaの記述が古いだけのようだ.
英語版にはちゃんと書いてあった.
・忘れていたcmpxchg16b, cdqeを追加.
とりあえずbf.cppと
calc.cppがx86, 64bit Win, 64bit gccに対応したので
正式公開する.
64bitのWinとgccの呼び出し規約の差はほんとに痛い. 特にgdbは実行時生成したコードに対してdisasできないのが辛い.
差をうまく吸収してどちらでも動く仕組みを用意しないとやってられないが, 簡潔な手法を考えるのは難しそうだ.
あと, 64bit Windows XpでMMX非サポートってのは
デマなのか? どなたか教えて.
xbyak.20080428.zip [daily snapshot]
結局もとの32bit版と同じぐらいで32bit/64bit対応になった.
64bit Winでtest0.cppがひっかかっていた原因はdebugモードでstackにアクセスするコードが挿入されてリターンアドレスが壊れていたためだった. releaseモードだと大丈夫.
それ以外のデモについてはゆっくり移植しよう.
違った. 保存領域は呼び出し元で確保しないといけないのか. 詳細を明日調べる.
xbyak.20080427.zip [daily snapshot]
かなりコード整理してすっきりした. あとポカミス修正して64bit Xp環境での動作確認開始. ただ64bit Linuxでは動いたサンプルコードのcall((void*)atoi);が動かない. アドレスが4GBの範囲に無いのか. どうしようかな.
お待たせ(?)しました. 64bit対応
β版
Xbyakを公開します.
一つのヘッダで32bit/64bit両環境に自動対応します.
単体テストはある程度網羅してるつもり(32bit時の数倍に膨れた. ---疲れた---)なので間違ったコードを出力することはあまり無いとはずですが, 不正な組み合わせに対しては弱いと思います.
とくにbplなどの組み合わせ. あとmovntiとかマニュアル上はqword対応っぽいのにnasm/yasmがエラーになるので後回し.
実際の動作確認は64bit Linuxでは
test64.cppが動いた程度で64bit Windowsは未検証.
というかまだ64bitの呼び出し規約を完全には把握してないので書けない.
それでもさくっと↑が動いたときはちょっと感動した. 現バージョンが不完全なのは承知してます. こんな感じになるよという雰囲気だけでも
プレフィクスの順序をnasmに合わせるのを諦めて, テスト前にフィルタを噛まして比較することにする.
一つずつひたすらfailをつぶすことで9割方テストが通るようになった. 明日はテストを増やしてコード整理する.
64bit版のアドレッシング周りのエンコードができるようになった.
・お土産を買いに行って袋に入れてもらったところで700円しか持ってなかったことに気がついた.
・ペアリングフォーラムで
ペアリング演算用ICを開発の話を聞く.
47usecかあ. 流石に4倍は無理だが二桁台ならなんとかならんかな. あとF
3127があるって聞いた. 実装しやすそうなので詳細を今度教えてもらおう.
日経サイエンスの「革命前夜の物理学」の記事がなかなか面白い. 私が勉強したときはニュートリノに質量は無いって言ってたような気がするけどあるって分かってもう十年か.
久しぶりに場の量子論とか勉強し直してみようかな. おや
やさしい物理教室だって. 明日読んでみよう.
諸般の事情自分の都合で, 実家から来ていた母への東京案内先が自由が丘周辺から
Make:technology on your timeに変更になった.
真空バズーカや手作りホバークラフト, プラネタリウムなどあったのでまあ楽しんでもらえてよかった.
なんと『
ふわふわの泉』の
野尻抱介も出展していた.
・結局64bit化のためにはほぼ全面書き直しか. ゴールデンウィーク頃にはリリースしたいな. まず目標にする.
・
Make:technology on your time
なにやらめっちゃ面白そうだ.
・64bit版のためにはnasmから単体テスト環境をyasmに変更する必要があるのだが, 一部の命令がnasmとyasmで異なるバイトコードにアセンブルされるようだ.
まずはXbyakの出力をyasmに合わせることから始めなあかんな.
・昨日の資料を
toyVMで遊ぶで公開した.
・
FSIJに行ってきた. 予想以上にコアな人たちがいてびびった. 資料内容などは明日出します. ビットリバースチェックしなきゃ.
あと, 笹田さんの質問を完全に勘違いしてました(何度も聞き直してくださっていたのにすいません). 現時点でのXbyakにはasmコードを文字列で出力する機能はありません. テストはNASM/Xbyak向けのコードを出力する網羅テストプログラムを実行し, 結果をそれぞれに食わせて得た16進数を比較するスクリプトを使ってます.
それから64bit版欲しいという意見も頂いた. よし頑張ろう.
もひとつ, 自分のノートPCでうまくプロジェクタに表示できなくてパソコンを貸して下さった
紀さん, ありがとうございました.
・↓(専門家)逆に考えれば, ど素人の私を研究室だけでなく自宅まで招いて一日中議論させていただいた
笠原先生や
境隆一先生には感謝してもしきれない. 本当に幸運だったと思う.
・会社にあった『小飼弾のアルファギークに逢ってきた』(小飼弾)をぱらぱらと見てたら, 同僚がインタビューを受けてる写真の隅っこに, 数ミリぐらいの背伸びをしている瞬間の自分が写ってた. おお.
・明日の
FSIJの準備中. 小ネタ集になりそうだ.
・
“解読不能”の新暗号の記事について、いくつかのお詫び
「暗号アルゴリズムの専門家以外から、画期的なアルゴリズムが出る可能性は限りなくゼロ」
1999~2000年頃からいくつかの研究会でペアリングを
IDベース暗号や放送暗号などに使うアイデアを出してたけどほぼ黙殺されていた.
あれは画期的なものだったと思ってるんだけど自惚れかな? Bonehさんたちより先に国内で認めてもらってればどうなってたかな.
追記:全部が全部, 自分のアイデアであるみたいな記述になってたので訂正.
安全性の厳密な証明の話じゃなくてあくまでもアイデアについて. 現状でもあまたあるペアリングに関する計算量的安全性に関する本質的な状況は当時とそれほど変わってない. なんとなく困難そうって思ってるだけ
・64bit環境に向けて
Xbyakのコード整理. 酷かったOperand周りがすっきりした(ってか何であんな汚かったんだ…).
・アルゴリズム未公開な暗号は検証できないからうさん臭い, というのにはとっても同意なんだが, こと実装に関する限り, 優れた論文でもソースが公開されないことが多い.
検証できないという点に関しては同じやよなあ.
『鼻/外套/査察官』(ゴーゴリ 浦雅春訳)
まず『鼻』を. 突然主人公からとれた鼻が一人歩きする奇妙奇天烈な話.
稲垣足穂やカフカもヘンチクリンだけど描写が破綻してる(どうやって「鼻」が服来て教会でお祈りするねん)あたりそれらを超えてるかも.
訳者あとがきにあるように, 落語の「あたま山」のそれと同じだ. 落語調で訳したのは凄いと思う.
タイヤがせまったときにサイドブレーキを引いて惨事の拡大を防いだ行動にただただ驚き, 打ち震える.
64bit環境の勉強開始. WinとLinuxとで
呼び出し規約が違うのか. かったるいなー.
『ソフトウェア開発者採用ガイド』(Joel Spolsky 青木靖訳)
「そんなこと言っても大抵の会社は技術者だけでやっていけるわけじゃないから難しいよ」と意外なほど冷めた目で読んでしまった.
何故だろう. ところで付録のジョエル・テストは
以前読んだときにもちらっと思ったのだが, メールやメッセンジャなどのnotifier(更新があったらバルーンなどでお知らせするやつ)をいれてるプログラマは気が散らないんだろうか.
よっぽどうっとうしいと思うんだが.
VAIO-BX(VGN-BX4AAPS)でintel VTを有効にする
この機種ではBIOSでVTを有効にできないためVMware上に64bit環境を構築できない(デフォルト無効なのは何故だろう).
それでは困るので試行錯誤して下記リンクと同様の手順でできた.
私の環境(BIOSのバージョンはR0200X9)では0000を0001に変更するアドレスは0x01E3だった この値はリンク先にあるようにひたすらトライアンドエラーで見つけた.
うっかりおかしな値を書き込んでマシンが起動しなくなっても知りませんよということでどうぞ.
very fast etaT pairing for Core 2 Duoを更新した. 懸念点だった3乗算もそこそこ速くなったので一区切りとしよう.
現在238usec@Core2Duo 1.8GHzで1週間前の公開時に比べて2割ほど速くなってる. ToDoとしては
- 既約多項式をx97 + x12 - 1ではなくx97 + x16 - 1にすると速くなるか.
- 論文で出されている3乗根を使わない各種の方法はパソコン上ではメリットが無さそう. 別のやり方を考えるべき.
- ペアリングのループをアンロールしてみる
あたりかな(どなたかやってみる?). 直感としては一つ目はそれほど効果がない, 三つ目は数%ぐらいの効果.
一番楽に速くできるのはマルチスレッドにすることやけどまあいいか.
『断絶への航海』(ジェイムズ・P・ホーガン 小隅黎訳)
人類が異なる価値観の社会 --- 沢山の物資との交換能力を持っている(お金持ち)ことではなく, 「他人に能力を認められること」を是とする社会 --- でどう生きていくのかという話.
『ガニメデの優しい巨人』や『造物主の掟』などの異星人が主体の話じゃなくて面食らったけどこれはこれで面白い.
ある種のユートピアだが, フリーソフトウェアに関わるコミュニティが近いかも. ラボ内部の雰囲気もそんな感じ.
最近読んだ新しめの本がことごとく外れだったので古い本を読んでみる(あ, キャラ萌えかと思った『銀盤カレイドスコープ』(海原零)が意外と面白かった---全部はまだ読んでないけど描写もしっかりしてるしヒロインも自分を持ってる---).
『黒いチューリップ』(アレクサンドル・デュマ 宗左近訳)が面白かった. 見え見えの伏線, 過剰な修飾, 分かりやすいストーリー展開やのに引き込まれる. 『モンテ・クリスト伯』みたいに長くないので気楽に読めるのもいい.
近所のお医者さんに紹介状を書いてもらって予約までして行ったのに2時間以上待って数分の診察だった. 耳のレントゲンで初めて撮ってもらったがぺちゃっと押されてなかなか痛かった.
2, 3日前はetat pairingで検索したらトップに来てたのに今は
全くヒットしない.
参考にしようかと思ってる方, お願いですので
very fast etaT pairing for Core 2 Duoにリンクしてください(^^;
昔
御意見は光成滋生<herumi@nifty.com>までお願いします