GPGPU#5

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2010/08/15(日) 21:47:50
GPGPUについて語りましょう

前スレ
GPGPU#4
http://hibari.2ch.net/test/read.cgi/tech/1255256230/l50

関連スレ
OpenCLプログラミング#1
http://hibari.2ch.net/test/read.cgi/tech/1228891105/l50
【GPGPU】くだすれCUDAスレ pert3【NVIDIA】
http://hibari.2ch.net/test/read.cgi/tech/1271587710/l50

参考リンク
総本山? gpgpu.org
http://www.gpgpu.org/
OpenCL
http://www.khronos.org/opencl/
NVIDIA CUDA
http://developer.nvidia.com/object/cuda.html
ATI Stream
http://developer.amd.com/gpu/ATIStreamSDK/Pages/default.aspx
GPUをCPU的に活用するGPGPUの可能性
http://pcweb.mycom.co.jp/articles/2005/09/06/siggraph2/
2011/09/28(水) 17:17:55.93
>>128
こうじゃね?

性能:ATI Stream
汎用:OpenCL
実用:CUDA
2011/10/02(日) 09:07:43.00
DirectComputeは?
あとATI Streamは悲しいほどに資料がみつからないんだけどそんなに高性能だったの?
2011/10/02(日) 11:11:37.87
ATI Streamが高性能というより
AMDGPUの演算性能自体がNVIDIAより2-3倍高い。
NVIDIAが力を入れているC2090のDP性能でも
6970と理論値で互角、実効値では後塵を拝している。
2011/10/02(日) 13:07:08.51
以前、ATIのIL(アセンブリ)で組んだことあるけど、
チップセット内蔵GPUしか持ってなかったから糞遅かった。
ちゃんとしたGPUで動かすと速いのかな。
2011/10/02(日) 19:07:21.59
>>131
そうだったんだ。OpenCLやDirectComputeでの比較がないか探してみよっと。
2011/10/03(月) 09:33:34.11
ATI Streamは本当に資料が無いよな・・・
CUDAの本は何冊か出てるのに

OpenCLで最新ATIの性能をフルに引き出せる?
2011/10/03(月) 15:09:16.19
前に例の長崎大のGPUスパコンの人がOpenCLでCypressのDGEMMベンチマークやってたよ
2011/10/03(月) 23:52:36.43
もしかして俺がCAL+ILの日本語本を書いたら大もうけできるのだろうか。
でも需要無いか。
2011/10/04(火) 01:30:15.92
次期東大スパコンにも使われる予定のIntel MICのほうが良いかも。
LarrabeeはGPUではなくなってしまったからGP「GPU」ではないかもしれないが。
2011/10/04(火) 01:34:43.66
>>136
それよりはOpenCLで書いて各ハード向けへの最適化手法を本にしたほうが儲かると思うよ
2011/10/04(火) 02:11:32.30
NVIDIAのGPUでOpenCLやろうとすると徹底的に最適化しなきゃお話にならないあたりでどうにも
2011/10/04(火) 09:36:23.59
NVIDIA<CUDA使え

って意味だな
2011/10/06(木) 09:36:21.40
CUDAはC#版もいちおー出てるのが大きいな
2011/10/14(金) 15:14:25.33
それ言ったらOpenCLもJava版出てるよ
2011/10/14(金) 19:41:56.68
両方いろいろ出てるよな。Python版とか。C/C++しか使わんけど
144デフォルトの名無しさん
垢版 |
2011/10/15(土) 11:09:55.49
pythonからpycuda経由で使ってみているけど、結構便利。
細かいことやろうとすると、結局python内にC(CUDA)のコード埋め込む事になるけど。
2011/10/15(土) 15:25:56.50
VisualStudio11のDPでC++AMPって使るんだねコンパイルしただけだから
実際どうだかとかわからないけど
2011/10/17(月) 09:42:39.10
ATI Streamは資料も無いしラッパーも無いし、何も無いのが痛い
2011/10/17(月) 09:54:44.42
>>146
え?
ttp://developer.amd.com/sdks/AMDAPPSDK/documentation/Pages/default.aspx
じゃだめなの?
2011/10/18(火) 19:29:48.59
英語読めない人にも配慮してもらわないとな
2011/10/22(土) 11:35:46.31
>>131
2〜3倍ってそんなに違うのか。ATIはいいもの作ってもマーケッティング面が弱いのかな
2011/10/22(土) 11:46:32.47
ベンチマークで良い数値が出てもドライバがバグだらけなので実用的じゃないんです。
2011/10/22(土) 16:00:19.52
AMDとintelのドライバ、どっちが悪いかってくらいダメだからなぁ
2011/10/22(土) 16:09:57.98
いっそのことプンソにして作って貰った方がいいんじゃね
2011/10/22(土) 18:35:35.82
>>151
その2つ合わせたよりも高いOSクラッシュ率のNVも相当なもんだぞ
2011/10/23(日) 11:26:03.73
>>152
AMDのLinux向けドライバはもう大分前からオープンソースでやってるんじゃ?
2011/10/23(日) 12:44:21.72
両方あるよ。
AMDとNVIDIAの違いはオープンソースコミュニティに
ハードウェアの仕様をドライバ書けるレベルまで公開しているかどうか。
2011/10/23(日) 13:34:45.12
オープンな方のドライバはopenclをまだ実行できないんじゃないかな
AMDが配布してるクローズドな方は実行できるしもう研究に使ってるとこもあるみたい
2011/10/26(水) 04:22:15.81
ゲフォで一般向け、と言うかteslaじゃないのは計算誤りが含まれてるから選別したとか、
どこかの大学で言ってたと思うんだけど、その辺の事情はアムも同じなの?
2011/10/26(水) 05:21:34.17
ソレ言った長崎大の先生はそのあとHD5870でクラスタ組んで論文出してるけどそのへんの事情は言ってないね
まあ保証が欲しいならFirePro買ってくれって立場なのはAMDも変わらんだろうけど
2011/11/05(土) 13:53:48.44
こんな技術、BEEP音鳴らすブザーで音階を奏でる類の技術なわけで、
広く実用されることは永遠にないと思うな。
2011/11/05(土) 14:15:01.69
だいぶ違うと思うが

初期はともかく、現在のハードウェアはほぼ完全にHPCのトレンドに乗せてきてるし
2011/11/06(日) 02:36:21.19
だいぶ違うのは確かだが、広く実用化されるかというとどうだろう。
フィットする問題領域がいくつかあるし、将来もなくならないだろう。
そして多くの領域ではGPGPUが必要にならない。
ほんと下らない当たり前なことで、>159 は何を言いたかったんだろう。
2011/11/08(火) 10:32:58.02
需要がニッチ過ぎるしなぁ
CPUもコア数増やすしか無くなってきたし、一時的な技術なのは確か
今のところは、単純な計算を繰り返すだけならGPGPUのほうが優位ってだけで
2011/11/08(火) 10:40:38.94
そりゃまあ、一家に1台クレイ風ベクトルプロセッサ、みたいにはならなかった、
という意味では、たいていの技術は「広く実用されることは永遠にない」ものだろうが。
2011/12/22(木) 14:36:12.59
ラデの7000シリーズが出たな。
2011/12/22(木) 14:54:46.40
金のある研究員の人
ラデの人柱になってください
2011/12/22(木) 15:15:25.43
某東北の公立大の中の人がなるんじゃないか?
167デフォルトの名無しさん
垢版 |
2011/12/22(木) 21:17:08.51
4Gamer.net ― AMD,新世代ハイエンドGPU「Radeon HD 7970」を発表――Southern Island世代のGPUアーキテクチャを整理する
http://www.4gamer.net/games/135/G013536/20111221078/

>つまり,GNCでSPの演算機能に手は入っておらず,単精度の浮動小数点積和演算・
>積和算・乗算・加算と整数演算のみをサポートしたものだということだ。
>言い換えると,VLIW5アーキテクチャにおける“ビッグSP”のような,
>倍精度演算や超越関数演算に対応した特別機能ユニットは搭載されていない。

Graphics Core Nextって倍精度が激遅になったりしないんだろうか。
一応次のようなCTOの発言↓があるのでそれをカバーするしくみがあるのかもしれないけど。

>「依存関係にない複数の命令を1命令としてまとめて実行できるVLIW方式も,
>グラフィックス用途では十分に活用できるアーキテクチャだが,
>GCNは汎用コンピューティング用途などでも優れたパフォーマンスを発揮できるアーキテクチャだ」
168デフォルトの名無しさん
垢版 |
2011/12/22(木) 21:38:45.64
自己解決しました。何にせよ新しいモノは楽しみですな。

【後藤弘茂のWeekly海外ニュース】 大きく進化を遂げた新世代GPU「Radeon HD 7900」
http://pc.watch.impress.co.jp/docs/column/kaigai/20111222_501138.html

>倍精度演算などは命令発行に16サイクルかかるため、Graphics Core Nextでは単精度と倍精度の
>ピークパフォーマンス比率は1対4となっている。925MHz動作なら947GFLOPSの倍精度性能となる。
>ここはトレードオフで、HPC(High Performance Computing)を重視するNVIDIAは、
>ダイ効率のトレードオフを払っても、単精度と倍精度の比率を1対2にしたが、AMDは1対4に抑えた。
2011/12/22(木) 22:53:29.18
つーか乗算の筆算考えてみれば
SPvsDPの計算負荷は1:4の方が自然なのは当たり前
NVIDIAのは倍精度重視というより、単精度軽視という方が近い
SP2倍結局計算できる回路があるのに使えなくしているだけなのだもの

まあ、レジスタ帯域とか考えれば1:2も分かるけど
これはレジスタの割り当て自由度を無駄に上げて
レジスタ帯域を上げる事を難しくしている
Fermiの構造的な問題だからな。


2011/12/22(木) 23:33:03.71
Tesla1のときは1:8だったけど理論値あたりの実効性能は90%に達してたんだよね
LSUやメモリなど足回りのパフォーマンスがDP演算器を支えるだけの余裕があったが

FermiでDPを増強したら今度は足回りが追いつかなくなったという皮肉
2011/12/22(木) 23:56:33.23
CUDAのアーキテクトがAMDに移籍したらしいがGCNはそれがモロに出たアーキテクチャだな
公式スライドそのままの画像をリークしてたVR-Zoneによると549ドルらしいし
HD6970、GT580より省電力とのことでかなり面白そうだ
2011/12/23(金) 01:10:26.44
確かに筆算の掛け算を考えると横に2倍×縦に2倍で4倍の計算量ってのが確認できますね。
仮数部が24bitと53bitで実際は4倍よりもうちょい要るはずだから、1:4でも少なからずリソースを割いているか。

64bit整数演算はまだかなぁ…使うアテないけど。
64bit整数が32bitと並ぶのはVRAMが4GB超えるのとセットなのかな。
2011/12/23(金) 03:05:28.01
>>170
行列積の話?
2011/12/23(金) 09:41:52.36
64bit整数演算はできないけど、53bitはできるって理解していいのでしょうか?
2011/12/23(金) 13:49:56.45
金のない俺としてはどのクラスまで倍精度をサポートするかが気になるな。

贅沢は言わんから7700シリーズまで頼む。
2011/12/23(金) 18:42:26.48
>>174
いいと思うけど、あくまで倍精度演算の速さでだよ。
さらに前後でdoubleに格納したり取り出したりするならその分もかかる。
2011/12/28(水) 02:26:18.12
おすすめのGPUを教えてください
2011/12/28(水) 09:43:57.74
最新の一番高いやつをその都度
2011/12/28(水) 11:54:58.22
http://www.freepatentsonline.com/8051123.html
Multipurpose functional unit with double-precision and filtering operations
2011/12/28(水) 11:57:58.69
Warpのダイナミック再構成がつくって話だなkepler
2011/12/31(土) 14:45:52.09
AMD's got an ace up it's sleeve: Tahiti-ASIC probably has 36 CUs/2304 Shaders
http://www.gpu-tech.org/content.php/181-AMD-s-got-an-ace-up-it-s-sleeve-Tahiti-ASIC-probably-has-36-CUs-2304-Shaders
2012/01/05(木) 23:26:19.60
http://ascii.jp/elem/000/000/659/659849/index-3.html


大原雄介の記事来た
http://news.mynavi.jp/special/2012/tahiti/index.html

2012/01/06(金) 12:45:44.61
http://news.mynavi.jp/special/2012/tahiti/005.html
めがっさ速い?
2012/01/13(金) 16:13:40.53
NVIDIAのステマ・広告攻勢がすごいから、
性能が同じくらい=AMDの圧勝ぐらいの意味だからな
そのあたりを気にしながら記事を読む必要がある
2012/01/14(土) 17:46:44.04
公式の7970用ドライバ来る前の記事だからな
2012/01/15(日) 12:54:20.11
nVidiaのステマ能力ははんぱない。
全世界のスパコンシェアを圧倒してしまった。
我々はこの独裁にどう対抗していけばよいのだろうか・・・
2012/01/15(日) 13:08:06.32
>>186
ATI stream と nvidia CUDA の両刀使いが現れるまで待つしかない、と。
2012/01/25(水) 10:42:49.23
Revenge is Sweet: PowerVR Discrete GPGPU PCIe Card Coming Later in 2012
ttp://vr-zone.com/articles/revenge-is-sweet-powervr-discrete-gpgpu-pcie-card-coming-later-in-2012/14609.html

レイトレを効率よく実行できるアーキテクチャなら使いでがありそうだな。
2012/01/25(水) 18:08:37.86
日本でのCUDA最先鋒な
東工大のAFDSでの発表が面白い。
http://developer.amd.com/afds/assets/presentations/2913_3_final.pdf
FFTをOpenCLで6970に移植したら、さくっとC2050や580の
最速実装を超えてしまったけど、でもだからと言って
AMDの方が良いとは言わないよとか。
2012/01/25(水) 18:22:40.59
TSUBAME2.0のためにTesla数千枚買っちゃったのに今更AMDが速いとか言ったら各方面から暗殺されかねんからな
2012/01/25(水) 20:10:51.84
超要約すると、

「なぜなら、このプログラムがあるのはNvidia賛のおかげだから(キリッ」

って事か?
2012/01/26(木) 11:48:32.10
「汎用のOpenCLよりnVIDIA特化したCUDAの方が速いよ」だと思う
当たり前のことだがw
せめてATIStreamと比較してくれ
2012/01/26(木) 13:04:08.77
なぜならECCが無いから問題外
2012/01/26(木) 15:03:56.23
ソフトウェアECCって処理によってがくっと性能下がるらしいからなぁ
2012/01/26(木) 17:07:39.79
たとえば?
2012/01/26(木) 17:49:06.78
>>192
「nVIDIA特化したCUDAでnVIDIAが最適化したCUFFTの方が
当然速いと思ったら、それよりは遅い自分たちがCUDAで書いた
コードを汎用のOpenCLに移植してAMDで動かした方が速かった」
という結果が出た上での結論だから。
2012/01/26(木) 19:55:34.70
>>195
話題に上がってる東工大の先生がGPUのソフトウェアECCについてまとめてたよ
あれ見るとハードでECC処理するTeslaのありがたみがよくわかる
2012/01/26(木) 20:13:42.50
ECCってハミング符号?
だったら、ソフトウェアで実装したら遅くなるのは道理だね
2012/01/26(木) 20:21:24.68
ECCに気を使うのも結構だけど、GPUの場合
そもそも計算間違う可能性についても
議論した方が良いと思うんだが。

長崎大でのGeforceのCUDA不適格率を考えてみても
Teslaがどの程度信頼性あるのか分からん。
2012/01/26(木) 21:10:41.07
統計的バラつきを消すために最初から複数回回す必要があるような
アルゴリズムを選ぶ方がいいのかもな。
2012/03/10(土) 17:43:48.01
今度のラデは800,700番台でも倍精度演算を実装してるみたいだ。
ちょっと勉強するのに買いやすくていいな。
2012/03/11(日) 05:18:50.99
おまえはもう達人だろ。
2012/03/20(火) 09:49:51.77
http://news.mynavi.jp/articles/2012/03/19/radeon/004.html

77x0,78x0の倍精度はエミュレーションっぽいな。
やっぱり79x0買うしかないか。
2012/03/20(火) 13:12:54.98
GPUでIIRフィルタを効率よくやる方法ってあります?
2012/03/21(水) 00:40:57.22
IIR位何も考えずとも効率良くやれるだろ。
並列に計算できるデータが物凄く多ければな。

並列に計算できるデータが少なくて、時系列方向に長い場合は、
FIRなら時系列方向の並列化も可能だけど
IIRは無理じゃね。
2012/03/21(水) 10:31:16.75
"IIR filter vectorize"とか"~ SIMD"とかでググったらなんか出てくるし読めばいいんじゃねぇの?
2012/03/22(木) 01:33:34.92
>>203
一応単精度では6950ぶっちぎる場面もあるんでまあグラフィックフィルタとか単精度で良いソフトなら試す価値はあるかな
今までと違って動かないわけじゃないから倍精度の開発検証ぐらいはできるしその程度だと思えば…
2012/03/22(木) 23:22:18.46
>204
けち臭いこと言わずFFTしてフィルタリングしろ。
2012/03/23(金) 00:55:17.20
GTX680出たな
2012/03/23(金) 09:11:06.91
だが、APUあたりのレジスタやキャッシュが激減してるし、チップあたりの
実行可能なカーネル数も減ってる。倍精度もエミュレーションぽいし、GPGPU向きじゃないな。

2012/03/23(金) 09:11:36.03
APU→ALU
2012/03/23(金) 13:08:36.71
トレードオフしっかり設計に反映させないと難しい世代になってきたって事かねぇ
2012/03/23(金) 21:26:08.99
>210
具体的な数値って分かる?
2012/03/23(金) 21:29:40.24
pcヲチの後藤さんの記事のブロック図を見れ
2012/05/07(月) 12:34:41.04
Linux上でGPGPU使って遊びたいんだけど64bitの方がいいかな
もしそうならOS入れ直すんだけど
2012/08/19(日) 10:31:27.66
Ubuntu12.04 x64版上で、OpenCLを使って3x3行列の固有値&固有ベクトルを
単精度のJacobi法で計算させてみた。

CPU:intel   i7-2600k (4.4GHz)
GPU:AMD Radeon-HD7970 (1.05GHz)

行列の個数5百万個(全て同じ行列を使用)
OpenCLソース内で同じ計算の繰り返しを10回
(->5千万個の3x3行列の固有値&固有ベクトルを求めたことに相当?)

OpenCLのソースコードはCPUとGPUで同じものを使用。

<結果>
CPUを使ったOpenCL(Jacobi法の反復回数は6回で収束)
カーネルの実行時間:47.68秒

GPUを使ったOpenCL(Jacobi法の反復回数はCPUと同じで6回で収束)
カーネルの実行時間:0.03389秒

GPUが1400倍も速いと言う結果になった。

OpenCLがAMD製なので、IntelのSSE、AVXなどへの最適化がうまく
行われていないのだろうか?
2012/08/19(日) 19:29:32.18
そもそもSSEやAVX使うようなコード書いているの?

2012/08/19(日) 19:37:00.00
float8とか明示的に256bit幅使うように指定しないと、AVX使わないのでは
219216
垢版 |
2012/08/19(日) 20:08:03.83
float4とfloat4を引数に使ったmadは多用してるよ。

2012/08/20(月) 13:15:46.35
いくらなんでも1400倍はおかしくないか?
OpenCLのことはよくしらないけど、理論性能から考えてもそんなに
差が出るはずが無いと思うが・・・
140倍なら、CPUのコードがクソならあり得るが
2012/08/20(月) 18:30:40.57
i7-2600k (AVX) が単精度 220 GFlops、倍精度 110 GFlops
同 (SSE) が単精度 54 GFlops、倍精度 110 GFlops
Radeon HD 7970 が単精度 3.8 TFlops、倍精度 950 GFlops

SSE でも100 倍以内に収まらないとちと CPU 遅すぎ。
OC しているならばなおさら。
2012/08/20(月) 19:26:12.93
倍精度だとSSEもAVXも同じなの?
2012/08/21(火) 10:06:59.44
x87比
224216
垢版 |
2012/08/22(水) 23:02:09.92
同じ問題を APU E1-1200 のミニノートPCで解いてみた。
OSは、 >216 と同じくUbuntu12.04 x64版。

メモリ資源の制限から、行列の個数は1/5の100万個。
Jacobi法のOpenCLモジュール内で10回同じ計算をループで
回しているので、1000万個の3x3行列の固有値を求めたことになる。
当然ながら、このミニノートPCでは O.C. はしていない。

<結果>

反復回数(6回)、計算精度共にデスクトップマシンで計算結果と同じ。

CPU  7.542 sec
GPU 0.4235 sec

OpenCLイベントタイマーで計測した正味の計算時間比較では
GPUが18倍速いと言う結果になった。
これぐらいの比率なら正常?
225216
垢版 |
2012/08/22(水) 23:10:51.04
ついでに >216 で使用したデスクトップマシン環境で同じ100万個の計算(1/5の量)を
再計測してみると
<結果>
CPU  9.311  sec
GPU 0.006517 sec  やはり、1429倍となる。

ただし、皆さんお気付きのように100万個同士の計算時間比較を行うと

<CPU同士の比較>
APU E1-1200 : 7.522 sec
i7-2600k (4.4GHz) : 9.311 sec

Woo! i7-2600k(4.4GHz)が E1-1200 の 0.8倍 ?????

<GPU同士の比較>
APU E1-1200 : 0.4235 sec
HD7970 (1.05GHz) : 0.006517 sec

HD7970 (1.05GHz) が APU E1-1200 の65倍となり、CPU側の計算時間が?

どちらも、C++で作成したOpenCLの環境セットアップ部を含めたJacobi法の
OpenCLコードまで全て同じソースコードを用いているが
CPU側のOpenCLイベントタイマー計測がどう見ても変なことが分かった。
デスクトップ側、ミニノートの両ドライバーファイルは12.8 catalyst + AMDAPP V2.7
で同じ。 またUbuntu付属のg++4.6.3+NetBeans上で実行モジュールを作成している。
226216
垢版 |
2012/08/22(水) 23:26:18.10
>225

> CPU側のOpenCLイベントタイマー計測がどう見ても変なことが分かった。

上記行を削除します(書き間違えました)。

実際に腕時計で測っても、同等な8秒程度の時間でした。
OpenCLイベントタイマー計測が変なのではなく、実際に i7-2600k の方が若干遅かったです。

2012/08/23(木) 01:59:01.61
ループでもっとぶんまわせば?
計測短すぎてクロック上がってないんだろ。
2012/08/23(木) 02:51:56.85
そもそも3x3行列ってのが小さすぎ
■ このスレッドは過去ログ倉庫に格納されています