一部のプロジェクトはGPUを用いた演算、GPGPUに対応しています。
GPGPUに対応したグラフィックカードを利用することにより対応するプロジェクトに参加することができます。
また、一部のプロジェクトはCPUを利用せず、GPUのみで演算するプロジェクトもあります。
高性能なグラフィックカードを用いて演算すると、CPUやPS3よりも遥かに高速な演算ができます。
GPUで解析を行う場合には、WU管理目的にCPUを若干のコア使用します。(0.数%を使用)※俗にいう"餌やり"
GPUに関してより詳細な情報が欲しい場合はこちら(英語)を参照してください。
GPUを使うにはGPGPUに対応したグラフィックカード(ビデオカード)またはCPUに内蔵されたGPU(GPGPU対応の物)、または各種GPGPU用演算カードが必要です。
以下にシステム要件を記しますが、一部のプロジェクトではこれ以上の要件が追加されている場合があります。
詳しくは各プロジェクトのウェブサイトで詳細を確認してください。
一般的なグラフィックカードの使用法ではない(常に100%の負荷をかける使用法)ので、一般的の利用法よりも早く故障する可能性があります。
IntelのIvy BridgeとHaswell(とそれ以降)はOpenCLに対応しているのでBOINCでも利用出来ます。
最新のドライバーとBOINCをインストールして確認してください。
なお、モニター等をマザーボードに挿してない場合はVGAダミープラグを挿して下さい。
APUは初代からOpenCLに対応しているのでBOINCでも利用出来ます。
最新のドライバーとBOINCをインストールして確認してください。
NVIDIAグラフィックカードをBOINCで利用するにはCUDAに対応している必要があります。また、256MB以上のVRAMが必要です。
CUDAに対応している製品のリスト
GeForce8000 / 9000以降が対応しています。
最新のCUDA対応のドライバをinstallします。(CUDA ToolkitやCUDA SDK code samplesは不要)
MACはこちらのドライバをインストールしてください。
グラフィックカードの性能の比較は、stream processors(SP)の値を参考にすること。
一部プロジェクトでは、NVIDIAのグラボであってもOpenCLで演算を行います。
AMDグラフィックカードをBOINCで利用するにはOpenCLに対応している必要があります。
Radeon HD 4000以降のボードであれば動くと思われます。
ただし、機種によっては倍精度の浮動小数点演算が大幅に性能制限されているため、これが必要とされる一部のプロジェクト(Milkywayなど)では使いものになりません。
ドライバはCatalyst 8.12以降が対応しています。
OpenCLは異なったシステムで汎用計算をするための真にロイヤリティフリーでオープンなプログラミング標準規格です。 OpenCLはマルチコアCPUと最新のGPUの両方に容易に対応でき、プログラマーがソースコードに集中することが出来ます。 主要なベンダーの代表者からなる標準規格委員会で開発されました。
BOINCクライアントは、
NVIDIA系は、6.3.8以降が
ATI系は、6.10.10以降が対応しています。
超重要:Windows Vista以降ではadvancedタブの 'protected mode' (7.0.47以降は'Service Install') のチェックを外してインストールする。チェックを入れるとGPUは動かないらしい。 |
BOINC6.6.20以降ではデフォルト設定でアイドリング中にのみGPUを使用するようになっています。
常時解析を行うには「高度な操作->プレファレンス」で"Use GPU while computer is in use(コンピュータの利用中にGPUを使う)"にチェックを入れてください。
GPUの性能や描画内容に左右されますが、GPU解析を行いつつの動画再生時はコマ落ちが発生する場合があります。
GPUによる動画再生支援を使用している場合は、アイドリングまでの判定時間を長くしておくと快適に動画が見られるでしょう。
各プロジェクトの設定(preferences)より、
「Use Graphics Processing Unit (GPU) if available(利用可能な画像処理装置(GPU)があれば使用する)」をyesに
「Use Central Processing Unit (CPU)」をnoに変更する。
対応していないプロジェクトもある。
プロジェクト名 | NVIDIA(CUDA) | AMD(OpenCL) | 備考 | ||||
windows | linux | windows | linux | ||||
32bit | 64bit | 64bit | 32bit | 64bit | 64bit | ||
WCG | ○ | ○ | × | ○ | ○ | × | AMD製品はXP以下は非対応 |
GPUGRID | ○ | △ | ○ | ○ | △ | × | かなり硬いのでハイスペック推奨 |
SETI@home | ○ | △ | × | ▽ | ▽ | × | |
SETI@home/AstroPulse Beta | ○ | △ | × | ○ | △ | × | |
MilkyWay@home | ○ | ○ | ○ | ○ | ○ | ○ | |
AQUA@home | ○ | ○ | × | × | × | × | |
Collatz Conjecture | ○ | ○ | ▽ | ○ | ○ | ▽ | 最適化パッチ |
Moo! Wrapper | ○ | △ | × | ○ | △ | ○ | |
Einstein@Home | ○ | △ | ○ | × | △ | × | |
Albert@Home | ○ | △ | ○ | × | △ | × | |
DrugDiscovery@Home | ○ | ○ | × | ○ | ○ | × | |
PrimeGrid | ○ | ○ | ○ | ○ | ○ | ○ | PPS(Sieve)、GCW(Sieve)、Generalized Fermat Prime Searchのみ |
The Lattice Project | ○ | △ | × | × | × | × | |
DistrRTgen | ○ | △ | ○ | × | × | × | |
POEM@HOME | × | × | ○ | ○ | △ | ○ | |
Donate@Home | ○ | △ | ○ | ○ | △ | ○ | |
Asteroids@home | ○ | ○ | ○ | × | × | × |
○:デフォルトで対応/▽:最適化アプリの導入が必要/△:デフォルトではないが動く/×:未対応
※2014年12現在、GPU対応プロジェクトはありません。
GPUマルチスレッド(nスレッド/1GPU)化
※前提
・1CPU+1GPUの解析が異常なく行えていること。
app_info.xmlに記載されているファイルとマッチする宿題が無いと、
[error] App version returned from anonymous platform project; ignoring
[error] No app version found for app ~
というエラーがイベントログに記載される。対応方法は、注意事項の3.を参照。
・現状ではHCCのみ対応。
・AMD製GPUの場合、OSがXP以下でない事。
ドライバーがvista以上でしか対応していないため。
※マルチスレッド化のメリット
・GPUの余剰時間(アイドル時間)をなくす
・GPUの余剰能力を使い切る(特にHD7850以上で顕著と思われる)
これらによる時間当たりの処理数(Res/h、及びPt/day)の向上
※注意事項
1.専用機推奨!!
・雑用機・ゲーミング機等、"ながら解析"では上記メリットは望めない、
むしろ高負荷のため、"ながら"の本業の方が作業不可能になる。
・ただし、PC使用(解析ストップ)⇔解析実行をきっちり分けて運用でき、
そういった運用にストレスが無ければ、問題ナシ。
・画面描画用と解析用のGPUが別々の場合も問題ナシ。
2.冷却に注意!!
・負荷の高い3Dベンチに比べれば全然マシだが、GPU温度に余裕が無ければ止めるべき。
3.xmlの修正について
・xmlの適用/変更/解除の都度、宿題を空にしてBOINC Managerを再起動すること。
・推奨…小まめに[タスクの新規取得禁止]をする
・推奨設定…Minimum work buffer[0.1]日
設定によってはBOINC Managerを終了させても裏で走っている場合が有る。
分かる人は設定の再確認を。分からない人はPC再起動を。
・もし、それでも駄目なら、一度xmlを削除してから「プロジェクトのリセット」を行って
宿題が正常に落ちてきてから、xmlを再度適用する。
※準備
必要な記述をした「app_info.xml」をBOINCmanagerに読み込ませることで、
1個の宿題に対して通常「1CPU+1GPU」であるところを
「1CPU+0.5GPU」や「1CPU+0.33GPU」に変更できる。
1GPUに対して2個、3個~それ以上の宿題が同時進行するようになる。
・app_info.xmlの作成 (記述内容は後述)
メモ帳を使うと、文字コード絡みで作成ミスが多いので
原則として、xmlエディターを使う事を推奨
例えば、XML Notepad 2007
http://www.microsoft.com/en-us/download/details.aspx?id=7973
・app_info.xmlの保存場所
C:\ProgramData?\BOINC\projects\www.worldcommunitygrid.org
個別に指定している場合は、その場所
・BOINC Managerを終了し、app_info.xmlを所定の場所に保存してBOINC Managerを再起動する
・xml記述内容
「xml適用した状態ではHCCのGPUだけもらう」
「 [1CPU+1GPU] ⇒ [1CPU+0.5GPU] …1GPU当たり2スレッド化 」
の場合。
----- app_info.xmlの内容 ATi(AMD)RADEON (Ver7.05用) -----
<app_info> <app> <name>hcc1</name> <user_friendly_name>Help Conquer Cancer</user_friendly_name> </app> <file_info> <name>wcg_hcc1_img_7.05_windows_intelx86__ati_hcc1</name> <executable/> </file_info> <file_info> <name>hcckernel.cl.7.05</name> <executable/> </file_info> <app_version> <app_name>hcc1</app_name> <version_num>705</version_num> <platform>windows_intelx86</platform> <plan_class>ati_hcc1</plan_class> <avg_ncpus>1.0</avg_ncpus> <max_ncpus>1.0</max_ncpus> <coproc> <type>ATI</type> <count>.5</count> </coproc> <file_ref> <file_name>wcg_hcc1_img_7.05_windows_intelx86__ati_hcc1</file_name> <main_program/> </file_ref> <file_ref> <file_name>hcckernel.cl.7.05</file_name> <open_name>hcckernel.cl</open_name> </file_ref> </app_version> </app_info>
----- app_info.xmlの内容 nVidia GeForce? (Ver7.05用) -----
<app_info> <app> <name>hcc1</name> <user_friendly_name>Help Conquer Cancer</user_friendly_name> </app> <file_info> <name>wcg_hcc1_img_7.05_windows_intelx86__nvidia_hcc1</name> <executable/> </file_info> <file_info> <name>hcckernel.cl.7.05</name> <executable/> </file_info> <app_version> <app_name>hcc1</app_name> <version_num>705</version_num> <platform>windows_intelx86</platform> <plan_class>nvidia_hcc1</plan_class> <avg_ncpus>1.0</avg_ncpus> <max_ncpus>1.0</max_ncpus> <coproc> <type>CUDA</type> <count>.5</count> </coproc> <file_ref> <file_name>wcg_hcc1_img_7.05_windows_intelx86__nvidia_hcc1</file_name> <main_program/> </file_ref> <file_ref> <file_name>hcckernel.cl.7.05</file_name> <open_name>hcckernel.cl</open_name> </file_ref> </app_version> </app_info>
以上を行い、いくつかのWUを解析し、答え合わせまで問題無ければ
countの設定を変更&試運転しつつ、最適スレッド数を模索していく。
※GPUスレッド数の調整方法
xml内の<count>n</count>の記述を修正する事でスレッド数を変える。
n=.5 ⇒ [1CPU+0.5GPU]…2スレッド/GPU
n=.33と書けば3スレッド/GPU
n=.25と書けば4スレッド/GPU
※CPUの利用率の調整方法(物理CPU1個を1CPUと表示)
<avg_ncpus>m</avg_ncpus>
<max_ncpus>m</max_ncpus>
の「m」の値を変更する。
m=.5 ⇒半分のコアを使用。8コアCPUなら4コアを使用する
m=.25では1/4のコアを使用する。
※参考:検証方法・考え方など
GPU当たりの最適スレッド数は GPUを始め環境によって変わるので、
WCGのHPにログイン、「結果状況」を見ながら
一定時間当たりの宿題処理数(WU/h,Res/h)で最適スレッド数を見極めるのが良い。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
また、ガンガン詰め込んでも、意外と伸びる場合もあるので、
countを適宜設定⇒一定時間解析⇒WU/h確認 を繰り返せば、
WU/hが最大になるcount設定値=その環境での最適スレッド数 が分かる。
PC稼働時間がかなり必要な作業なので、程々にしつつ、
「冷却不安だしとりあえず.33でいいや」というのもアリ。
推奨GPU一覧 | |
強く推奨 | |
Geforce GTX | 690, 780Ti, Titan, 780, 770, 760Ti, 760, 680, 670, 660Ti, 660, 650Ti Boost, 650Ti, 650 (VRAM 2GB), 645 |
Geforce GT | 640 (Kepler), 630Rev.2. |
推奨 | |
Geforce GTX | 590, 580, 570, 480, 560 Ti (448), 470, 465, 560Ti, 460, 550Ti |
Quadro | 6000, 5000, 4000, 2000, 2000D |
Tesla | C2050, C2070, M2050, M2070, S2050 |
あまり推奨でない | |
Geforce GTS | 450 |
Geforce GTX | 295, 280, 275, 560Ti, 260-216 (55nm), 460, 550Ti, 460SE, 480M (CC2.0) |
Quadro | 600, 5010M, 5000M, 4000M, 3000M, 2000M |
Tesla | Tesla10, Tesla20 |
注意:非推奨のカードでは時間のかかるタスクを実行すべきではありません
第6世代以上なら十分な動きをします
Forum漁ってたら面白いもの見つけた 参照
CC1.1を基準としたときのCCの違いを補正する係数
Compute Capable | 補正係数 |
CC1.1 | 1.00(基準) |
CC1.2 | 1.30 |
CC1.3 | 1.40 |
CC2.0 | 1.35 |
ちなみにCC1.0が載ってないのはGPUGRIDではCC1.0世代への宿題の提供が終了したため。現在はCC1.3以上が必要である。
2011年6月12日現在、「SETI@home Enhanced」「Astropulse v5」「Astropulse v505」の3種のアプリケーションにより解析が行われているが、
SETI@home EnhancedのみがGPUに対応。
ATI GPU用のパッチ。Downloads - GPU Apps より。
Binary Radio Pulsar Searchが対象。インテル内臓GPUでも参加できる。
NVIDIA系GPUはCompute Capability 1.3以降、190.**以降のドライバが対応している。
Compute Capability 1.3は、GeForce? GTX 200以降を示す。
ATI/AMD系GPUは以下のものとHD6700シリーズ以降が対応している模様。
世代 | 型番 |
3800 series | 3850 3870 3850x2 3870x2 |
4700 series | 4730 4770 |
4800 series | 4830 4850 4870 4890 4850X2 4870X2 |
5900 series | 59x0 |
5800 series | 58x0 |
Firestream 9200 series |
※Radeon HD 57x0では動きません。
Ubuntu 11.10 beta 64bit で MilkyWay?@home のアプリが動作せずエラーになる場合
参考
"$ sudo ln -s /lib64/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2"
で動くようになった。他のLinux 64bit ATI Stream なプロジェクトでも同様に適用できるかも。
GPU patchはlinuxのみに必要。
最適化パッチ
ATI系GPUはRadeon HD 2400以降のものが対応していると思われます。
2020年5月現在、PPS(Sieve)、321Sieve、Generalized Fermat Prime Search、Generalized Fermat Prime Search World Record、Arithmetic Progression of Primes 27等にて解析可能。NVIDIA、AMDのGPUともに可能だが、NVIDIAのCUDAを使うのはPPS(Sieve)だけになっており、その他はNVIDIA、AMDともにOpenCLで解析を行う。
よくあるトラブルはFAQを参照してください。
宿題が降ってこない場合は鯖状態?を確認
リモートデスクトップで接続されると、実行されているプログラムからはGPUが見えなくなるために起こります。
回避方法は、リモートデスクトップを使用しない、以外今のところ有りません(見つけた人は是非下記加えてください)。どうしても遠隔操作が必要な場合、その他の遠隔操作ツールを使用しましょう。
この現象が生じた場合は、ローカルにてログインするか、その他の遠隔操作ツールを使用してログインするとGPU解析が再開されます。
リモートデスクトップ以外の遠隔操作ツール
GPUをGPGPU演算に使用すると通常の利用では再現しないような問題に出くわすことがあります。
GPGPUのためにGPUはどんどん複雑になり、またGPGPUは発展途上のため不具合も数多くあります。
そのためハードウェア及びソフトウェアに非常にシビアになっています。
トラブルの解消のために下記の手順をお試しください。
Point:まれに宿題の不具合でエラーが発生することがあります。同様のエラーが出てる人がいないか確認をしてください。 |
NVIDIAのグラフィックカードをお使いの場合は"ディスプレイ ドライバ nvlddmkm が応答を停止しましたが、正常に回復しました。"というログが見つかることがあります。これは主にnvlddmkm.sysというファイルの問題です。これをGoogleで検索すると詳細が見つかるので、ファイルの更新などの対処を取ってください。 |
ドライバはWindowsの安定性に大きくかかわるソフトウェアです。万が一の事態に備えバックアップ等を取られることを強くお勧めします。 |
最新のドライバで改善しない場合は、Beta版のドライバをインストールすることで改善することがあります。
もし、Beta版のドライバをインストールしても改善しない場合は旧バージョンの安定ドライバをインストールしてください。
次の項目ではWindowsの問題の解消を扱います。ハードウェアの問題を解決する場合にはこの項目を読み飛ばしてください。
Windowsの問題の場合はメモリの問題、レジストリの問題、システムファイルの問題等さまざまな可能性があります。
一番手っ取り早い解決方法はWindowsの再インストールです。これで直らない場合はほぼハードウェアの問題でしょう。
Windowsではメモリの容量不足でシステムが不安定になることがあります。
物理メモリが足りない場合はもちろんですが、仮想メモリが足りなくて不具合が発生することがあります。
仮想メモリは通常物理メモリの2倍程度を目安に設定しますが、最新のコンピュータ等でメモリが4GBや8GB程度ある場合は物理メモリの1/2~物理メモリと同じ容量でも大丈夫な場合があります。
使用状況を良く見極め適切な仮想メモリ容量を設定してください。
Point:メモリを16GBといったような大容量のメモリ積んでいるコンピュータでも使用状況によっては32GB程度の仮想メモリが必要な場合もあります。 |
次にレジストリの問題の解消について説明します。
一般的にレジストリに問題がある場合はWindowsのイベントログにログが残ることが多いです。
まず、レジストリの操作を行う前にレジストリの完全なバックアップを取ります。完全なバックアップを取ります。大事な事なので二回(ry
次に各種ツールでレジストリの検査を行います。なお、むやみに関係のないレジストリをいじらない方がいいでしょう。
レジストリに問題が発見されたら、それを十分に調査し、適切な対処を施します。Google先生でこまめに検索するとよいでしょう。
次にシステムファイルの問題の解消について説明します。
Windowsのファイルが存在しない場合や破損している場合はそれらのファイルを正常なファイルに置き換えます。
通常、これらの問題のあるファイルの特定や正常なファイルへの置き換えは極めて困難なので、ほとんどの場合は再インストール処置がとられます。
これらの対処を行っても改善しない場合はハードウェアの問題が疑われます。
下記にハードウェアの問題の対処法を記します。
オーバークロックをしている場合はまず定格動作に戻してください。ベンチマークを完走できてもBOINCではエラーが出る場合があります。 |
特定のテストで画面が乱れる等の症状が発生する場合は電源がきちんと供給されているかを再度確認し、
上の項目のドライバの更新の通りにドライバを試しても改善しない場合は物理的な故障や相性問題等が疑われます。
それでも改善されない場合は相性問題やほかのデバイスの問題の可能性があります。
念入りにグラフィックカード以外のテストを行っても異常がない場合はグラフィックカードの物理的な故障または相性問題が疑われます。
最近のGPUは高度な演算を行うために構造が複雑化し、CPUにますます近づいています。
それに伴い、かなりシビアな動作を行っている場合もあるため相性問題が発生することがあります。
それでも改善しない場合は環境の問題です。
諦めてください。
グラフィックカードの問題について GPUのバグ(エラッタ)により特定の演算処理でエラーが発生することもあります。また、GPUのメモリやコントローラが故障している場合もあります。このような場合は問題の特定が非常に困難になります。 |
一部のグラフィックカードはメモリに不具合のあるものが出回っているという情報があります。また、GPUの設計に問題があってエラーが発生する場合もあります。
このような場合は別なものに交換するしか問題の解決法がありません。
GPUのクロックアップは推奨されていません。PrimeGridではnvidiaのグラボについては、製造メーカーによるオーバークロックモデルの製品も使用もお勧めしないと記載されています。
そのまんまインストールしただけではダメなので、 C:\ProgramData?\BOINC\cc_config.xmlに
<cc_config>
<options>
<use_all_gpus>1</use_all_gpus> ←この一行
</options>
</cc_config>
を<options>以降</options>より前に追加してください。
参考ページ
http://www.gpugrid.net/forum_thread.php?id=2123
http://www.gpugrid.net/forum_thread.php?id=2359
<app_config> <app> <name>アプリ名前</name> <max_concurrent>4</max_concurrent> <gpu_versions> <gpu_usage>0.5</gpu_usage> <cpu_usage>0.5</cpu_usage> </gpu_versions> </app> </app_config>アプリの名前はマルチスレッドにしたいアプリの名前を書く
<cc_config> <options> <ignore_nvidia_dev>1</ignore_nvidia_dev> ←この一行を </options> </cc_config>
もっと詳しいことはBOINC公式wikiで
http://boinc.berkeley.edu/wiki/Client_configuration#Application_configuration
コメントはありません。 Comments/GPU?