[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:1127

From: Takeshi Horinouchi <horinout rish.kyoto-u.ac.jp>
Date: Tue, 20 Nov 2007 19:52:14 +0900
Subject: [yarv-dev:1127] Re: 考えている案

堀之内です。

追伸です。

浮動小数点がらみで特に時間がかかるのは、ループを沢山まわす場合が
大いではないでしょうか。素人のコメント恐縮ですが、比較的
「やりやすい」(注※)ループならコンパイルして速く回すというのも
ありかと思うのですが。

Google に「yarv C コンパイラ」と入れたら
http://www.atdot.net/~ko1/w3ml/w3ml.cgi/yarv-dev/msg/85
が出てきました。すみません、現在既に Ruby は JIT 入りでしょうか。
それなら、浮動小数点ループ向け JIT 高速化とか...

(注※) 例えば Numeric など限られたクラスのオブジェクトしか含まれ
     ない場合とか。私の場合、ループに NArray も混ぜたいですが...。
     言いたい放題ついで書くと、NArray も ruby 1.9 に取り込まれる
     と嬉しかったりします。うまく遅延処理を入れるなどして、より
     速くなって欲しかったりして...。

> 堀之内です。
> 
> (2)はやばいと思います。NArray 等の拡張ライブラリーを使う場合や、
> Fortran や C での計算と比較する場合と、丸め誤差が一致しなくなり
> ます。カオスなどに代表される、初期誤差が増大するケースでは浮動
> 小数点方式がかわると結果が大きく変わります。そういう問題なんだ
> からしょうがないという考えかたもありえますが、数値計算自体の検
> 証可能性が確保できなくなります。
> 
> >  ささだです.
> > 
> >  Float の高速化ですが,いくつか案があり,それぞれ得失があります.
> > で,とりあえず 64bit 前提に考えています.
> > 
> >  高速化は,主に Float の「埋め込み」によって行おうと考えています.
> > 要するに,Fixnum と Bignum の関係です.Fixnum はヒープ上にメモリをア
> > ロケートしていません.Float はヒープ上にメモリをアロケートしているの
> > で,たくさん数値計算をすると GC が発生します.
> > 
> > 
> > (1) 単精度にする
> > 
> >  一番安易な解決方法です.64bit CPU なら 32 bit まるまる使っても安心.
> > 
> > (2) 1bit,精度を犠牲にする
> > 
> >  一番現実的かな,と思っています.数値計算にどれくらい影響を与える
> > か,わかりません.この辺の評価ってどうすればいいんでしょうか.
> > 
> > (3) 頑張って精度を保証する
> > 
> >  IEEE754 の規格に則って,exp をやりくりして,1 bit 〜 3 bit 捻出す
> > る方法です.細々とした計算が必要になるため,オーバヘッドは大きいです
> > が,精度が保証できるため難しい検証やらは不要です(今まで通り,で終わ
> > り).
> > 
> > 
> >  例えば,(2) ってどれくらい「やばい」んでしょうか.



--
ML: yarv-dev quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

      1122 2007-11-20 19:08 [ko1 atdot.net       ] 考えている案                            
      1123 2007-11-20 19:25 ┣[horinout rish.kyoto-]                                       
      1124 2007-11-20 19:33 ┃┣[ko1 atdot.net       ]                                     
->    1127 2007-11-20 19:52 ┃┣[horinout rish.kyoto-]                                     
      1129 2007-11-20 20:05 ┃┃┗[ko1 atdot.net       ]                                   
      1130 2007-11-20 20:21 ┃┃ ┗[horinout rish.kyoto-]                                 
      1131 2007-11-20 20:24 ┃┃  ┗[ko1 atdot.net       ]                               
      1132 2007-11-20 20:32 ┃┗[2008 shudo.net      ]                                     
      1133 2007-11-20 20:53 ┃ ┗[horinout rish.kyoto-]                                   
      1137 2007-11-20 21:15 ┃  ┗[2008 shudo.net      ]                                 
      1125 2007-11-20 19:39 ┣[m-72 tf6.so-net.ne.j]                                       
      1126 2007-11-20 19:46 ┃┗[ko1 atdot.net       ]                                     
      1128 2007-11-20 19:58 ┃ ┣[m-72 tf6.so-net.ne.j]                                   
      1135 2007-11-20 20:59 ┃ ┗[m-72 tf6.so-net.ne.j]                                   
      1145 2007-11-21 19:44 ┃  ┗[ko1 atdot.net       ]                                 
      1146 2007-11-21 20:34 ┃   ┗[m-72 tf6.so-net.ne.j]                               
      1134 2007-11-20 20:54 ┣[2008 shudo.net      ]                                       
      1144 2007-11-21 08:39 ┃┗[ko1 atdot.net       ]                                     
      1140 2007-11-21 03:52 ┣[t_nissie yahoo.co.jp] 富豪的 VALUE 型( Re: 考えている案)  
      1141 2007-11-21 04:57 ┃┗[ko1 atdot.net       ]                                     
      1142 2007-11-21 05:29 ┃ ┗[t_nissie yahoo.co.jp]                                   
      1143 2007-11-21 06:02 ┃  ┗[ko1 atdot.net       ]                                 
      1147 2007-11-24 12:56 ┗[m-72 tf6.so-net.ne.j]                                       
      1148 2007-11-24 13:10  ┣[ko1 atdot.net       ]                                     
      1152 2007-11-25 08:51  ┃┗[m-72 tf6.so-net.ne.j]                                   
      1149 2007-11-24 13:18  ┣[ko1 atdot.net       ]                                     
      1150 2007-11-24 13:21  ┗[ko1 atdot.net       ]                                     
      1151 2007-11-24 13:39   ┗[m-72 tf6.so-net.ne.j]