「2chからコピ」の編集履歴(バックアップ)一覧に戻る

2chからコピ - (2009/04/25 (土) 17:56:50) の編集履歴(バックアップ)


CUDAについて


579 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/03/29(日) 13:52:48 ID:BoWqW1Oi
過去スレに張られてた良翻訳をコピペてみる

[Bf-committers] CUDA backend implementation for GSoC?
http://lists.blender.org/pipermail/bf-committers/2008-December/022348.html
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\  Blender の CUDA 対応の課題について解説するお。
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー'´   /

CUDA/OpenCL を Blender と一緒に動かすのにはいろいろと課題があるお。メモリ帯域幅が最大の課題だお。
説明するとこういうことだお。Core i7 だとシステムメモリから毎秒 20 GB のデータを取り出せるお。
PCIe バスの最大値は毎秒 4 GB だお。ハイエンドの GF8 カードの場合、内部的には毎秒 100 GB だお。
他にも山ほど課題があるお。GF8 内部にはメモリが3種類あるお。グローバル、スタティック、ローカル
だお(名前は忘れていいお)。でもってプロセッサのブロックとゆーものがあって各ブロックは1度に
1つのプログラムを実行できるお。やる夫の記憶が正しければ1ブロック=8ストリームプロセッサだから、
128ストリームプロセッサのカードだったら16個の SIMD プロセッサがあることになるお。ストリーム
プロセッサにはベクトル演算とスカラ演算のユニットがあるから、うまいこといけば一度に4×8回ぐらいの
浮動小数点乗算を実行できるお。うまいこといけばの話だお。

話をメモリに戻すと、メモリの特定の場所にアクセスできるのは1度に1つのブロックだけだお(メモリバンク
を使ってるんだと思うお)。各ブロックにはスタティックメモリがあるんだけど容量は 16 KB しかないお。

てなわけで、まあ CUDA/OpenCL で Blender 的なことをやるのは可能だけど山ほど制限事項があって大変だお。
少量のデータをカードに取り込めばよくて、そのデータに施す大量の処理があるような状況だとすごくうまく
いくけど、それ以外の場合はわせdrftgyふじこlpだお。OpenCL に CPU 用のな実装が出るかどうかは
要注目だお。もしそういう実装が出たら、Blender の一部を OpenCL で書いて、利用可能なときだけ GPU 版の
OpenGL を使うとゆーよーなことが始められるかもだお。


597 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/03/30(月) 23:24:09 ID:w/D4Df4U
579
一言で言えばハードウェアの対応待ちかw


599 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/03/31(火) 01:09:14 ID:yOgWjbOx
 597
 いや、ちょっと誤解があるかと
 以下スルー歓迎な長文スマソ

まず前置きとしてBlender開発陣がGPGPU系の対応予定をなにも明言していない事実があります
その上で、OpenCLのCPUとの共存性に期待できるんじゃまいかとティモシータソが言ってくれたのが>>579に引用したポストです。翻訳者には多謝

CUDA対応デバイスはOpenCL使用上でドライブできます
現時点で多い誤解として、OpenCLがCUDAとかを包むラッパだと
認識されてたりするんですが実はもっと低いレイヤで定義しようとしてる代物で、実際に

      / ─    ─ \    勘違いしないで頂きたい
    /   (●)  (●)  \  最終的にはOpenGLをOpenCLの
    |      (__人__)     | オプションとしてまとめ得る(キリッ

なんて提案まであります。

なんかばらばらにやっちゃってるストリーミングプロセッサ系とか
ヘテロジニアスなCPUとかの叩き方の仕様まとめようぜーってスコープを
曲げようとしないあたりが格好いいんですが、
一方大多数の予想を裏切る事なく、順調にクロノスの仕事は延期し続けています。
目安箱バナー