No Such Blog or Diary
コンパイラがお馬鹿で困る
- 2012-02-04 (Sat)
- 一般
YMMレジスタがまだ8本も余っているのにメモリに読み書きしに行ってくれる.gcc のバージョンが古いからなのか? ループ内にはAVXの命令しかないし使われている256ビット変数の数は15未満で register の修飾つけているのに…… やっぱアセンブラでちゃんとかけということなのか.
閑話休題.
ビット反転させる命令がないなぁとか思ってたけどよく考えたら NAND があるから NOT できるのね.全部 0 は自身と XOR で作るとして,全部 1 にするのは自身との同値判定でフラグを全部立てるという手法で良いのだろうか? あとは double 4つを1要素分だけローテートする方法がよくわからん.2つずらすなら128bitの permutation で良いのだけど…… なんとなく128bitの境界が頑丈でそれを超えての便利な移動が用意されていない気がする.
というかリファレンスを眺めるのも面倒だ……
追記:コンパイラが32bit用バイナリ吐いてるから ymm7 までしか使えないという制限に引っかかっているのか.cygwin も MinGW も 64bit サポートしてねぇとか何なんだ……
- Comments: 0
- TrackBack (Close): -
18ヶ月目の点検
- 2012-02-03 (Fri)
- 一般
死にかけのバッテリーとリアブレーキのスイッチとプラグとオイルとを交換.とりあえずバッテリーが高い,2万円超えてるし.タイヤもそうだけど色々と高いなぁ.スイッチの交換は工賃を考えると自分でやっても良かったかも? プラグ交換は面倒なのでおまかせが正解なきがする.
半年後にはエアクリーナーとオイルフィルタも交換せねば.
- Comments: 0
- TrackBack (Close): -
強制貯金?
- 2012-02-03 (Fri)
- 一般
これまで大学では第一生命のセールスレディにしか会ったことがなかったのだけど,今日は日本生命のセールスレディが来た.来週また来てお話聴いて頂戴なということらしい.まあ,話を聞くだけならただなので聞くとして……
そういえば現状の保険契約がどんなだったっけかなぁと家に帰って調べてみた.とりあえず今死ぬと Canon の 200mm ~ 1200mm の最大口径単焦点を揃えられるらしい.まあ,死ぬとお得な貯金と思って色々始めたのでそんなもんか.
- Comments: 0
- TrackBack (Close): -
SSEを使い出す
- 2012-02-02 (Thu)
- 一般
ちょっとループを変形して自分でベクタライズしてSSEが刺さるようにしてみたら計算時間が3/4位には縮まった.まあ,SSEでは double 2つ分しか並列化されないのでこんなもんか.AVXが使えればもう一声速くなるか?
とりあえず強制パイプライン化による加速パラメータの劣化が結構痛いのでちょっとストールが入ってしまうけれど別の並列化を導入しよう.ただの趣味なので査読に飽きたら処理する.
- Comments: 0
- TrackBack (Close): -
平方根なしにしてみたけれど
- 2012-02-01 (Wed)
- 一般
実行時間が2/3になったけれど,ただそれのみ.キャッシュを効かせるために複数の走査をまとめようとすると収束を加速するためのパラメータの精度が落ちて時間が伸びる.
もっと頭使わないとダメそうだけどそろそろ諦めよう.とりあえず知見は得た.
- Comments: 0
- TrackBack (Close): -