- ベストアンサー
NVIDIAのTESLAて?
つい最近になってやっとNVIDIA TESLAなるものがあると知りました。 CUDA自体はQuadoroFX○×00の×が6番台から 外部コントロール可能になっているように思いますが、 (かな? 自信ないけど) 此って昔でいう所の30837みたいな コプロセッサーの類い(外部演算プロセッサー機能) と、思って良いのですか? あと、 アプリケーション開発元が 対応するかどうかはありますが それを除けば QuadoroFXシリーズにも 同様に外部演算プロセッサー機能を 期待できますか? 、 例えば 膨大な科学演算を扱うアプリケーションが GPUの処理能力を 映像描画用途以外で活用する といった感じです。 ご教示をお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
最近ではTeslaの次のFermiが売られています。 使われているGPUを以下のサイトでどのCompute Capabilityに属するか調べてみてください。 http://developer.nvidia.com/cuda-gpus この前少しテストしてみたのですが、Compute Capabilityが1.xのものは決して速くないです。最適化をあまりしていないので、どの程度GPUの能力を発揮しているかはわかりませんが、初代Core i7クラスと比べるとだいぶ遅い結果になりました。 GPUにもよりますが、概ね2.0以上だと互角以上の速度がでます。CPUに比べて10倍以上速くなるとの報告が良くされていますが、アプリケーション全体としてはなかなかそこまでのいくものは少ない様です。
その他の回答 (3)
- ki073
- ベストアンサー率77% (491/634)
No.3のお礼欄について 小規模なものは既にCPUで使われているようです。 最近のCPUはパイプラインが長くなっているので、分岐があると分岐するかの判断が確定するまで待っているとCPUの止まった状態が続くため見切り計算がされているようです。 参考 http://news.mynavi.jp/column/architecture/index.html パイプライン、分岐、スーパースカラとか読めば大まかなことが分かると思います。 同じ著者がソフトウエアがらみのところを本にしています、図書館にでもあればこちらの方が読みやすいかもしれません。 「プロセッサを支える技術 --果てしなくスピードを追求する世界」 Hisa Ando 実際にプログラム技術として見切り発車的な計算をしているものは見たことがありません。 ループ部分を分解して並列化、ベクトル化が行われることがほとんどです。実際にはシミュレーションの場合には、圧倒的にそういう部分がボトルネックになっており、まだそこまで必要が無いのかもしれません。
お礼
ほほ~!! なるほど 有り難うございます。
- ki073
- ベストアンサー率77% (491/634)
>物体内での力の伝播のような、測定ポイントがたくさんあり >しかもベクトル要素を持つものこういったものの計算には >向いていると云うことですね、 基本的にはそういうことです。GPUバージョンが出ているものはそれなり効果がでる分野だからです。 この分野に興味がありましたら、「ベクトル計算機」や「並列計算」で検索してみてください。 GPU以外のことが多く載っていますが、それに特化させたのがGPUです。 nvidiaからもCUBLAS(行列計算)やCUFFT(フーリエ変換)のライブラリがでています。このようなものが利用できるようなものであればライブラリを入れ替えることでお手軽に速くなる可能性があるということです。
お礼
並列計算機の話が出たので 少し横道にそれても良いですか? 以前より感じていたのですか ノイマン式コンピューター向けプログラムを 並列計算機にかけづらくしている点は データを得て演算し 判断をし 結果としてのデータを得る 得たデータを演算し … という流れな為 「判断プロセスを」待たなければ 次の演算ができない、 この点だと 思うのです。 で、以下のようなやり方を 発想したのですが、 此って既に こなれたやり方なのですか? それとも 余り魅力無いやり方なのですか? システムを コードデコーダーと ディレクターと スケジューラーと スタッフに分けて コードデコーダーは プログラム分岐点を探し 起こりうる選択肢の数と その時の引数の可能性を 全て見つけ出す。 (できれば関数に対しても) (※:当然 膨大な組み合わせになりますが 構いません) スケジューラーは 洗い出された分岐点の内 到達がより早いものから順に どの選択肢かの判定ができるようになる前に 選択されるか未定の分岐点の 演算内容と起こりうる可能性の内の 一つの引数セットを スタッフ全体に 複数を均一に スケジューリングする (※:勿論スケジュール1つ1つ毎に 渡すセットは変える) 又破棄要請が来たスケジュールは スタッフ各位にその旨の破棄要請を出す。 ディレクターは スタッフが返してきた結果をスプーリングし 即座に選択肢として使える物は使い 選択と破棄と再スケジューリング要請を行う >選択 分岐点の一つを選択し 他選択肢への可能性を切り捨てる >破棄 可能性が切り捨てられた選択肢をスケジューリングされているスタッフに対し 当該スケジュールを破棄する要請をスケジューラーに出す >再スケジューリング要請 スケジュ-ラーにスケジューリング量の少ないスタッフへの スケジュールの再割り当てを要請する 各スタッフは破棄要請を受け取らない限り 渡された演算結果を得ようと処理を完遂し 結果をディレクターに返す こういう一連の流れで動作すると コードデコーダーと スケジューラーの処理が 十分早ければ 例え 演算コアが数億あろうとも 瞬く間に スケジュールが割り振られる と思うのです。 ディレクターは 特に後半 演算結果(選択肢判定の為のデータ)が 全て出そろっている状態に 入りますから 待ち時間無しで 選択肢を次々に選んでいく そんな状態になることが 予想されます。 このやり方のポイントは 「選択肢を選択する段になる前にデータを揃える」 「無駄になる処理を平気で行い 不要なら惜しげも無く捨てる」 ことです スカラー計算機的ではないでしょうが ノイマン式コンピュータ向けプログラムを 非ノイマンコンピューターで実行する時の手法として 面白いと 私は思うのですが、 どうでしょうか?
- ki073
- ベストアンサー率77% (491/634)
No1のお礼欄について 書き忘れましたがもうひとつ CUDA CORESの数があります。CPUコア数みたいなものです。 Tesla S1070 448 Quadro FX1700 32 ですので、10倍以上の差があります。 どのCPUと比べるかによりますが、この前調べたのが GeForce GTX 465 352 CUDA CORES です。これくらいになると明らかに速くなります。それとCompute Capabilityが1.3以上で倍精度浮動小数点がサポートされます。それ以前は単精度だけです。 GPUは今どんどん高性能になっていますので、まだ買う時期が難しいです。 SolidWorksはGPUに対応してるようですので、機会があれば試してみてください。 それと、浮動小数点ユニットFPUに相当するかということですが、答えは難しいです。 昔のFPUだと浮動小数点演算は確実に速くなっていましたが、GPUは少し違います。 GPUはベクトル+並列コンピュータなのでそれに適した計算でないと全然性能がでません。 行列の計算のように繰り返し計算が多くある場合に有効になります。
お礼
今回もまた勉強になることばかりです お教え頂き有り難うございます
補足
物体内での力の伝播のような、 測定ポイントがたくさんあり しかもベクトル要素を持つもの こういったものの計算には 向いていると云うことですね、 解析速度の向上に期待が持てますね
お礼
御指南有り難うございます。 今SolidWorks学生版で 設計形状を様々に試させて シミュレーションを行い その結果の中から 最適値を選ぶ作業を quadoroFX1700搭載マシンで させているのですが この表だと Tesla S1070 1.3 quadoroFX1700 1.1 と、云うことですから 浮動小数点演算支援としては あまり変わらない と、思えるのですか?