No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 717 | 718 | 719 |...| 1108 | 1109 | 1110 || Next»

GCCのベクタライザに言う事をきかせられない

ほんのちょっと外側に単純なループを追加しただけで mulps とかが mulss とかになってしまう.中でやっている変換の仕様を見たほうがはやいかなとか思い始めた.

あとはレジスタ余ってるのに直前に読んだメモリをレジスタに置いとくとかしてくれないのね…… そのオフセットの値はひとつ前のイテレーションで読んでるじゃん,とか文句を言いながらどうしたもんかと1日悩む.結局解決法はわからん.Expression templates で計算式を持ってきているので手動で register と叫ぶことができず,コンパイラに頑張ってもらうしかないのだけど…… ああ,マイナス方向のインデックスへのアクセスを拾ってきて明示的にキャッシュしておいた値を返すように式を変換してしまえばいいのか.問題はそれをやったとしてベクタライザがうまく動いてくれるかだな.

コンパイラに言う事をきかせるのは難しい.

休日だが

関係ないので大学へ行く.今日は夕方に発表があったはずなので.

が,先週のセミナーの最後に「来週発表してね」と言われたはずなのだけどそれを言った主催者が今日は不在らしいというオチで…… 人も少ないしまた来週ってことになった.

next week って「次回」の意味だったのだろうか? 隔週でやるとか言ってた気もしなくもないからそうかもしれない.ま,いいや.

閑話休題.

ものすごく自明に SSE/AVX を使って並列化してもらえそうなのに GCC が頑張ってくれない.ICC でないとダメかなぁ.使える環境で一番新しい ICC の入ってるのってどれだ? つか帰ったら自分でひとつ買うか.

日曜だが

大学で明日の発表の準備.Expression Templates 使ったライブラリの技術的な話を期待さられているらしいのだけど,実装されたものを紹介しても複雑すぎるので簡易版を作って説明しなければならない.

ということで,朝からガリガリとC++のテンプレートなコードを書きつつスライド作成.ひと通り作ってから整理したら何故か2話分のスライドが出来上がっていた.

閑話休題.

休日の防犯巡回か何かの人たちがやってきて何かを語りかけられたのだけど,ぶっちゃけ何言ってるかわからんかった.ジェスチャー的に鍵をちゃんとかけろってことだと思うのだけど,正確なところはわからない.つか,フランス語分かりませんって言うフランス語を喋れるようになるべきだな.英語で言っても通じない.

「日本語食べれません」って言えば大抵の人は引き下がるよ,とかいうことを言っていた留学生を思い出した(「喋れません」すら言えないと認識されて無罪放免になるという論理).

VPS を幾つか試す

さくらのVPS以外も試してみようと思って,L2TP/IPsec な VPN が簡単に作れるかどうか幾つかの安い VPS で試した.つか,VPS と VPN って紛らわしい.

とりあえず月490円のお安い DTI の ServersMan @VPS Enrty を最初に試したが,使えるUbuntu のバージョンが古い(10.10 amd64, 10.04 x86)ってのと,カーネル周りがどうやって弄ったものかわからないのとで使いにくい.カーネルモジュール全然ないし…… モジュールを作りなおすとか嫌すぎるし…… そもそもカーネルいじれるのか? Ubuntu でカーネル変えると起動しませんとか書いてあるドキュメントもあったり…… とかいう感じで即解約.そもそも Ubuntu のインストーラを自分で操作してインストールするタイプでないので色々と面倒.

次に,月840円のカゴヤの VPS タイプA を試すも基本的に ServerMan のと同じでカーネル周りの自由度が…… という感想で即解約.こちらはインスタンスを1日30円で簡単に増やせるのでその点は便利な気がする.

最後に月940円のお名前.com のVPS1GBプラン.これは普通に Ubunru 12.04 を Ubuntu のインストーラを使ってインストールできるのでさくらのVPSと同様に使いやすい(さらには自前のISOをマウントして起動できるのか?).んで,通常のインストーラで入れるのでカーネル周りも普通で L2TP/IPsec な VPN の構築も何の問題もなく終わった.さくらの VPS と比べてコントロールパネルの出来がよろしい(初心者向けな)気がする.

とうことで,結論:お名前.com の VPS は使いやすいっぽい.計算機性能はどうだかしらんけど.

閑話休題.

お名前.com でサービスを使うには電話認証が必要だったりして微妙に躓いた.申請完了通知のメールに書いてあるURLのページに行ってそこにあるボタンを押すと,申請時に書いた電話番号に電話がかかってくるので,そのページにある認証コードを電話で入れてくださいと.……出張中にもかかわらず自宅の電話番号で申し込みをすると電話認証ができず残念なコトに.とりあえず,ユーザ情報の変更で携帯の電話番号に変更した上でもう一つインスタンスを申し込んで認証をするとかいう対処をした.つか,普通に電話番号間違って登録することもあるだろうから何処かに真っ当な対処法が有る気もする.

Typeclass で遊ぶ

Haskell と違って型以外の項もパラメータにとれるので色々と遊べる.自動でプログラムを変換させてみたりとか(基本となる関数の変換方法をインスタンスとして置いといて,それらの基本関数を適当に合成したものの変換結果を計算させるとか).

とりあえず基本的なギミックは理解したので来週はもうちょい応用にチャレンジしよう.

閑話休題.

自明だけど証明が面倒(というか tactic の使い方に慣れてない)なので admit が大活躍してたりする今日この頃.慣れている人が証明してくれることを願いつつリポジトリに投げる.

隠れている部分が違うのか

Coq に「Hoge a b c の項が期待されるのに Hoge a b c の型の項なのでエラー」と言われた.このメッセージだけを見ていても何も悪いことしてないようにしか思えない.

んで,Set Printing All. と叫んでみたら implicit なパラメータ部分で微妙にずれていたという罠で,「@Hoge X a b c の項が期待されるのに @Hoge Y a b c の型の項なのでエラー」という意味のわかるエラーを吐いてくれるようになった.

……見えている型が同じだったら隠れている部分も自動で表示してくれればいいのに.

«Prev || 1 | 2 | 3 |...| 717 | 718 | 719 |...| 1108 | 1109 | 1110 || Next»
Search
Feeds

Page Top