2chからコピ - (2009/04/25 (土) 17:56:50) の編集履歴(バックアップ)
CUDAについて
Blender Part23
http://pc11.2ch.net/test/read.cgi/cg/1234284088/
http://pc11.2ch.net/test/read.cgi/cg/1234284088/
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┬-| |
\ `ー'´ /
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回ぐらいの
浮動小数点乗算を実行できるお。うまいこといけばの話だお。
説明するとこういうことだお。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 しかないお。
を使ってるんだと思うお)。各ブロックにはスタティックメモリがあるんだけど容量は 16 KB しかないお。
てなわけで、まあ CUDA/OpenCL で Blender 的なことをやるのは可能だけど山ほど制限事項があって大変だお。
少量のデータをカードに取り込めばよくて、そのデータに施す大量の処理があるような状況だとすごくうまく
いくけど、それ以外の場合はわせdrftgyふじこlpだお。OpenCL に CPU 用のな実装が出るかどうかは
要注目だお。もしそういう実装が出たら、Blender の一部を OpenCL で書いて、利用可能なときだけ GPU 版の
OpenGL を使うとゆーよーなことが始められるかもだお。
少量のデータをカードに取り込めばよくて、そのデータに施す大量の処理があるような状況だとすごくうまく
いくけど、それ以外の場合はわせdrftgyふじこlpだお。OpenCL に CPU 用のな実装が出るかどうかは
要注目だお。もしそういう実装が出たら、Blender の一部を OpenCL で書いて、利用可能なときだけ GPU 版の
OpenGL を使うとゆーよーなことが始められるかもだお。
597 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/03/30(月) 23:24:09 ID:w/D4Df4U
579
一言で言えばハードウェアの対応待ちかw
579
一言で言えばハードウェアの対応待ちかw
599 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/03/31(火) 01:09:14 ID:yOgWjbOx
597
いや、ちょっと誤解があるかと
以下スルー歓迎な長文スマソ
597
いや、ちょっと誤解があるかと
以下スルー歓迎な長文スマソ
まず前置きとしてBlender開発陣がGPGPU系の対応予定をなにも明言していない事実があります
その上で、OpenCLのCPUとの共存性に期待できるんじゃまいかとティモシータソが言ってくれたのが>>579に引用したポストです。翻訳者には多謝
その上で、OpenCLのCPUとの共存性に期待できるんじゃまいかとティモシータソが言ってくれたのが>>579に引用したポストです。翻訳者には多謝
CUDA対応デバイスはOpenCL使用上でドライブできます
現時点で多い誤解として、OpenCLがCUDAとかを包むラッパだと
認識されてたりするんですが実はもっと低いレイヤで定義しようとしてる代物で、実際に
現時点で多い誤解として、OpenCLがCUDAとかを包むラッパだと
認識されてたりするんですが実はもっと低いレイヤで定義しようとしてる代物で、実際に
/ ─ ─ \ 勘違いしないで頂きたい
/ (●) (●) \ 最終的にはOpenGLをOpenCLの
| (__人__) | オプションとしてまとめ得る(キリッ
/ (●) (●) \ 最終的にはOpenGLをOpenCLの
| (__人__) | オプションとしてまとめ得る(キリッ
なんて提案まであります。
なんかばらばらにやっちゃってるストリーミングプロセッサ系とか
ヘテロジニアスなCPUとかの叩き方の仕様まとめようぜーってスコープを
曲げようとしないあたりが格好いいんですが、
一方大多数の予想を裏切る事なく、順調にクロノスの仕事は延期し続けています。
ヘテロジニアスなCPUとかの叩き方の仕様まとめようぜーってスコープを
曲げようとしないあたりが格好いいんですが、
一方大多数の予想を裏切る事なく、順調にクロノスの仕事は延期し続けています。