• トップ
  • G-DEPについて
  • ご購入ガイド
  • サポート
  • お問い合わせ

G-DEPトップ  >  G-DEPの高速演算記  >  高速演算記 第8回 「Fermi解説その3−統合アドレス空間によるプログラミング自由度のアップ」

高速演算記 第8回 「Fermi解説その3−統合アドレス空間によるプログラミング自由度のアップ」

以前より紹介しているFermiの新機能、今回はハードウェアの改良によって充実されたC++機能のサポートについて紹介したいと思います。Fermiでは40bitのアドレス空間を新たに設け、それまでは別々の命令によってアクセスしていたローカルメモリ、共有メモリ、グローバルメモリが統合された空間に配置され、一つの命令によってアクセスすることが可能となりました。
ポインタが指すアドレスによって、どのメモリ領域を指しているかが明白になったため、カーネル関数で共有メモリを指すポインタの受け渡しも可能となりました。また、カーネルを実行する際にスタックを利用できるようになり、再帰型関数を記述することが可能となりました。今回はこれらの新機能について紹介したいと思います。
Fermi Unified memory address space
2010年は日本において動力飛行が実現してから100年のようですので、飛行機ではないのですが、今回は地球を周回する衛星のシミュレーションをGPU で記述してみたいと思います。今回の衛星シミュレーションは軌道の数値積分ですが、数値積分のアルゴリズム自体には汎用性を持たせ、積分対象が変更できるように関数ポインタを使用してみます。また、地球の非均一な重力項を求めるときに再帰呼び出しによる処理で実現してみたいと思います。

NVIDIAのサンプルコードにはn-体問題が付属していますが、今回は地球と衛星の2体問題を取り上げます。2質点に働く重力モデルは以下のような

続きを読むには...

この記事は会員限定のため、G-DEP会員登録(無料)が必要となります。
未登録の方は「登録」ボタンをクリックしG-DEP会員登録を行ってください。
※会員登録をされますと記事の閲覧の他、コメント投稿も可能になります。

新規登録  ログイン