続々・GPUのお勉強

前回からの続き。

計算を単精度に変えてみた。
画像の右上に三角形のつなぎ目で計算誤差で塗りつぶされない領域が出来てしまった。

Float

続けて、Q14で固定小数点にして見た場合。
Q14

ラスタライズによる塗りつぶし領域は正常になったが、テクスチャ座標でパースペクティブ補正が精度不足で悲惨なことに。
ラスタライズ演算後の座標は、あくまでピクセル数なので固定小数の方がトラブルが無いようだ。

一方で、除算の入る座標系は、単精度のままの方がよさそうだ。
(一応 Q20 ぐらいまで持っていくと正常にはなったが)。

FPGA化する場合、ステップサイズでインクリメントするとレイテンシが長いので、毎回乗算したほうがいいかもしれない。

(2015/07/25 追記)  普通に浮動小数点でステップ増加していくコア書けました。XILINXのIPカタログの浮動小数点コア使う場合は accumulator が使えますが、単純ステップ増加の場合は指数部のケア(仮数部の桁合わせ)が簡略化できるので、回路的には少しお得に出来るのではなかろうかと。

コメント

タイトルとURLをコピーしました