ATIハードウェアによる第二世代GPUクライアント (GPU2) FAQ
目次
- はじめに
- TinkerコアでデビューしたFolding@home (2000年10月)
- さらなる前進:Gromacsコア (2003年5月)
- 大いなる次のステップ:ストリーミングプロセッサコア (2006年9月)
- 第二世代GPUコア、またの名をGPU2 (2008年4月)
- ご利用にあたって
- よくある質問
- 新クライアント・コアはどのハードウェアをサポートしているのですか?
- 新クライアント・コアはどのOSをサポートしていますか?
- GPUのクロックを調整してもかまいませんか?
- クライアント実行中にCPUを他の作業で使っても大丈夫ですか?
- PCIeとAGPでは差がありますか?
- -gpuオプションをつけて複数のGPUを動かせますか?
- GPU1クライアントと同じWUは処理できますか?
- GPUワークユニット(WU)のポイントはどうなっていますか?
- 新しいGPUクライアントがどこが重要なのですか?
- 新旧GPUクライアントは何が違うのですか?
- このクライアントを動かしているとき、GPUをゲーム等に使っても大丈夫ですか?
- トラブルシューティング
- 前はちゃんと動いたのに、Early Unit End (EUE)がたくさん出るようになりました。どうすればいいですか?
- クライアントに、サポート対象のGPUがないと怒られます。
- GPUクライアントはどこにインストールされるのですか?
- coreがDLLを見失ってしまいます。
- DLLエラーのダイアログ窓がポップアップします。どうなっているのですか?
- 新しいDLLで問題が出る原因は?
- 開発者について

FAHの簡単な歴史: TinkerからGromacs、GPUからGPU2まで
はじめに
2000年より、Folding@home (FAH) は分子シミュレーションのスピードを飛躍的に向上させてきました。世界中から数十万のPCが参加することにより、以前は不可能と考えられてきた計算が今は当たり前のように行われています。FAHはタンパク質の折りたたみと異常折りたたみを対象とし、このプロジェクトから幾多の科学的進歩がもたらされました。
2006年になって、我々は処理能力を大きく向上する新たな手段に期待し始めました。これはATIの新しい高性能グラフィックス処理ユニット (GPU) を用い、かつてはスーパーコンピュータでしかなしえなかった計算速度を実現するというものです。この新技術があれば、SonyのPlayStation3が搭載する新しいCellプロセッサと同じように、1台のコンピュータで100GFlopsクラスの性能を得られるようになるでしょう。新しいソフトウェアとハードウェアを組み合わせ、我々はFolding@homeをさらに大きく進化させることができます。
そして2008年の今、我々は第二世代GPUコア (GPU2) を開発しました。これは最初のGPUコアよりずっと洗練されており、高い信頼性があり、使いやすく、そして科学技術計算能力が飛躍的に向上しています。
我々のゴールはこの新技術でFolding@homeの処理能力を劇的に向上させ、シミュレーションでアルツハイマー病、ハンチントン病、および 癌といった、タンパク質折り畳みと関連する疾病の研究を推し進めることです。これらコンピュータの進歩が新技術を利用したシミュレーションメソドロジと結びつき、計算量が膨大で以前は不可能と思われた問題をも解くことができるようになり、折り畳みとこれに関連した疾病の学問に巨大なインパクトを与えるでしょう。
TinkerコアでデビューしたFolding@home (2000年10月)
2000年10月、Folding@homeは正式リリースされました。このメインソフトウェア・コアエンジンはTinker分子動力学コードでした。Tinkerは用途が広く、またよくデザインされたソフトウェアであることから最初の科学計算コアに選ばれました。とりわけ、Tinkerは多様なMD力場と溶媒モデルをサポートする唯一のコードでした。Tinkerコアを用い、我々は全くのアミノ酸配列から最初の小さなタンパク質を折り畳みました (後にNatureに掲載)。
さらなる前進:Gromacsコア (2003年5月)
何ヶ月ものテストの後、Folding@homeはGromacs MDコードベースの新しいコアを2003年5月にリリースしました。Gromacsは入手できる最高速のMDコードであり、おそらく世界でもっとも最適化された科学計算コードです。ハンドチューンされたアセンブリコードとPCおよびintel MacのSSE命令を使用することにより、Gromacsは他のMDコードに対し10倍のオーダーで速く、とりわけTinkerからは約20~30倍もの高速化を実現していました (Tinkerは融通が利く機能性に優れたコードでしたが、高速化には不向き)。
ところが、Gromacsは確かにTinkerより速いのですが、できることに限界がありました。たとえば、Tinkerの折り畳みシミュレーションで重要な役割を果たす多くの陰溶媒モデルがサポートされていません。Gromacsはある種のシミュレーションを大幅に高速化するもののTinkerコアの代替になりえず、このためTinkerは引き続き (Science誌に掲載された最近の論文でも) Folding@homeで重要な役割を担い続けることになったのです。FAHの科学技術計算における重要性を考慮し、Gromacs WUのポイントはTinkerから据え置かれました。それだけでなく、ベンチマーク機を 500MHz Celeron から 2.8 GHz Pentium 4 に置き換え、これらのWUが公平にベンチマークできるようにしました (ベンチマーク機にはSSEハードウェアサポートが必要だったため)。
大いなる次のステップ:ストリーミングプロセッサコア (2006年9月)
GromacsコアがPCのSSEを利用してFolding@homeに20~30倍の大きな高速化をもたらしたのと同じく、2006年 Folding@homeは新世代ハードウェア、プログラマブルな浮動小数点計算が出来るGPUを利用する新たなストリーミングプロセッサコアを開発しました。高度に最適化されたハンドチューンのコードを書いてATI X1900クラスのGPUを動かし、Folding@homeの科学技術計算は限定された状況ながら従来のソフトウェア(Gromacs)に比べてさらに20~30倍の高速化を実現したのです。この凄まじい高速化は本質的に完全な分子ダイナミクス計算をGPU上で行った上でのことです。GPU最速コードを目指すような、意欲的なソフトウェア開発作業が行われました。
これに加え、SonyはPandeグループと共同でPS3 Cellプロセッサ用のコアを開発し、従来x86/SSE Gromacsコアで実現していた科学技術計算を飛躍的に高速化しました。Gromacs導入時に続いて、(GPU以外では実行できない) ストリーミングWUをベンチマークするためにATI X1900 GPU機の追加を含むベンチマークマシン切り替えを行う予定です。このマシンはGPUを使わないCPU版WUもベンチマークすることになるでしょう (GPUが特定の限られたシミュレーションしか行えないため、依然としてCPUも必要なのです)。
第二世代GPUコア、またの名をGPU2 (2008年4月)
最初のGPUコアをリリースしてしばらく実行結果を解析する中で、我々はGPGPUソフトウェアを実行することについて多くのことを学びました。たとえば、GPGPUをDirectXを通して実行するのは求めている用途に対して信頼性が十分でない、といったようなことです。またGPUのアルゴリズムと改良についてもたくさんのことがわかりました。GPUの本当にエキサイティングな一面は、既存のアルゴリズムを高速化するだけでなく、我々がCPUでは(スピードの不足で)出来るとまったく考えられなかった新しいアルゴリズムに対して道を開くことです。
多くの努力が費やされ、第一世代GPUから得たすべてを注ぎ込んで第二世代のクライアントが作られました。この新しいクライアントはさらに高速で、信頼性が高く、そして科学計算における高い機能性を持っています。試験運用の結果は上々で、FAHユーザの皆さんにこのクライアントを提供できることに我々は心躍る思いです。
ご利用にあたって
このwebページでは新クライアントのFAQとリリースノートを提供します。そして、新しい情報が入り次第更新していきます。
FAH GPUクライアントのインストールは、インストーラを実行するだけで必要な設定が全部できるようになっています。インストールされるのはv6.xスタイルのシステムトレイ版クライアント、および新クライアントに必要なDLLファイルです。クライアントはこちらからダウンロードしてください。
ATIのドライバはCatalyst 8.1以上必須、8.3以上を推奨しています。Microsoft .NET Framework 2.0以上も必要です。
これはベータ版であり、バグ、不具合など問題が出ることも予想されます。問題を最小限にするため、我々は内部で広範なテストを実施し、きちんと動作することを確認してきました。しかし、今までの経験から研究室における管理された環境と「外の荒野で」実行することは状況がまったく異なります。
ベータ版ソフトウェアのご利用の際はハードディスクの重要なデータをバックアップしておいてください。また、小さな問題やマシンの不安定が許容できない場合においては、このソフトウェアを実行しないでください。
よくある質問
新クライアント・コアはどのハードウェアをサポートしているのですか?
このクライアントはAMDの計算抽象レイヤ(CAL)をサポートするR6xx系GPU以降、すなわちRadeon2400以降の全てのハードウェアで実行できます。3870X2は、まだGPUコアを両方アクティブにしてテストしていませんが、1コアでは動作確認しています。
新クライアント・コアはどのOSをサポートしていますか?
Windows XP 32-bit/64-bit と Vista 32-bit/64-bitです。Windows XPは、SP2適用済である必要があります。XPとVistaでは使用するCALのDLLが違いますが(下記参照ください)、インストーラは自動的に環境に合った方を選んでインストールします。
GPUのクロックを調整してもかまいませんか?
3xxxハードウェアでは、FAH実行時に3Dモードのクロックが自動的にセットされるほか、Catalyst Control CenterのOverdriveパネルでGPUコアとメモリのクロックスピードを変更できます。グラフィクス用の安定クロックがFAHでも安定するとは限らないことに注意してください。また、オーバークロックは自己責任で行ってください。2xxxハードウェアでは3Dモードクロックの自動設定が当てにならないので、ATI Tray Toolなどのサードパーティツールを使用してクロック調整することになります。繰り返しますが自己責任です。クロック設定は基本的にいじらず、ドライバの自動調整に任せることを推奨します。
クライアント実行中にCPUを他の作業で使っても大丈夫ですか?
1クライアントあたり、1CPUコアを100%空けておくことを推奨します。データを十分GPUに供給し続けるため、GPUクライアント1個あたりCPUコアが一つ必要になる計算です。
新クライアントの場合、ハイエンドGPUの折りたたみ性能はCPUのデータ供給能力に直接左右されます。GPUコアの能力が上がっても、これをサポートするCPUの速度が不十分であれば性能が上がらない可能性があります。反対に、CPUが非常に速ければ新クライアントにおいてGPUの性能を100%引き出すことが出来ます。
PCIeとAGPでは差がありますか?
GPUクライアントがベストの性能を発揮するのは、グラフィックボードをPCIe x16スロットに挿したときです。x8やx4スロットの場合、CPU-GPU間の通信速度が落ちるため若干性能に影響があるでしょう。AGPボードもサポートしていますが、同様にCPU-GPU間通信の問題で性能は全体的にPCIeより下がってしまいます。なおPCIe v2.0の場合、PCIeよりほんの少し高速です。
-gpuオプションをつけて複数のGPUを動かせますか?
複数のGPU2クライアントを実行する、つまり複数GPUカードの一枚ごとに1クライアント動かすには -gpu x コマンドラインオプションを使います。設定方法はCPUシステムトレイ版を複数動かすときと同様です。
- GPUクライアントのデフォルトのインストール先は C:\Documents and Settings\<ユーザ名>\Application Data\Folding@home-gpu です。これをを同じ階層の たとえば Folding@home-gpu2 というディレクトリにコピーします。(Vistaの場合は ...\AppData\Roaming\Folding@home-gpu にインストールされています)
- 一つめのクライアント用にショートカットを作成し、右クリックして プロパティ--ショートカット タブを開きます。
- 「リンク先(T):」と「作業フォルダ(S):」が正しいパスを指しているか確認してください。
- この「リンク先(T):」の末尾("より後)に -gpu 0 オプションを追加してください。
- 次に、二つめのクライアント用ショートカットを作成し、同様に「リンク先(T):」「作業フォルダ(S):」のパスを確認してください。「リンク先(T):」の末尾には -gpu 1 オプションを追加します。
ここで注意が一つ。「リンク先(T):」欄は、-gpu オプションが違うことを除けば同一の(デフォルトの)ファイルパスを指すということです。一方「作業フォルダ(S):」欄はそれぞれ別々のパス(...\Folding@home-gpu と ...\Folding@home-gpu2 など)を指していなくてはなりません。システムトレイ版ショートカットの「リンク先(T):」と「作業フォルダ(S):」については、後のセクションでも説明しています。
クライアントが使用するボードはディスプレイをアクティブにしておく必要があります。そして -gpu 0 がプライマリのボード、-gpu 1 をセカンダリ、-gpu 2 は三つ目のボード…というように順々に指定していきます。クライアントに複数のボードを認識させるため、CrossFireは無効にする必要があるでしょう。また、各クライアントには別々のMachine ID(マシン識別番号)を振らなくてはいけません。3850X2と3870X2については、現在1クライアントだけサポートしています。
GPU1クライアントと同じWUは処理できますか?
いいえ、第二世代GPUクライアントではFahcore_11.exeの機能を利用するため特別に作られた全く新しいWUセットが走ります。Fahcore_11 は第一世代GPUクライアントで走らず、またFahcore_10も新クライアントからは実行できません。
GPUワークユニット(WU)のポイントはどうなっていますか?
ポイントはCPUクライアントベンチマークと同様に、ベンチマークマシンとの相対性能で決まります。新しいプロジェクト(WUセット)をリリースするときは、まず専用のマシンでベンチマークします。このマシンは AMD Athlon64 X2 4000+ 2.16GHz、ATI Radeon 3850 GPU (512 MB, 320ストリームプロセッサ)を搭載するDell Inspiron 531です。
ベンチマークテストの結果は、下記の公式に当てはめます:
ポイント = 1000 * (DaysPerWU)
ここで DaysPerWU はベンチマークマシンがそのWUを処理するのにかかった日数です。GPUクライアントは高速なCPUに依存しているので、CPUはここでも重要なパーツです。ここで算出した一日あたりポイント(PPD)はCPU負荷が重いことを想定しており、PPDが大きいものは高いCPU使用率を補償する意味でそうなっています。
リファレンスマシンのコンセプトでは、WU処理性能があなたのマシンと違う場合もあることに気をつけてください。GPUでさえ、モデルによってアーキテクチャやメモリスピードがまったく異なります。さらに、同じプロジェクトのWUでも処理スピードに幅を持っている場合があります。
我々のねらいは(上記)リファレンスマシン構成を定義してポイントに一貫性を持たせることです。これを超えてあなたのマシンが獲得するポイントを完全に予測するポイントシステムは、マシンとマシン、WUとWUの間にある自然なばらつきのため、難しいでしょう。
新しいGPUクライアントがどこが重要なのですか?
GPUクライアントの目的は二つあります:ストリームプロセッサの高い処理能力を活用することと、マルチGPUが今後数年にわたって業界標準になるとき主要なFAHコンピューティングパラダイムの一つになるシミュレーションアーキテクチャの開発を支援することです。高性能クライアントは普通のアーキテクチャでは非現実的な種類の計算をも実行することを可能にします。そして、科学技術計算能力と皆さんの貢献を著しく高めてくれるのです。
高性能クライアントはしばしばコンピュータリソースを多く必要とします。
新旧GPUクライアントは何が違うのですか?
技術的には、新しいクライアントにいくつか非常に便利で新しい機能を導入しています。PS3と同じ先進的なWaterモデルと(これからPS3に導入していく)新しいモデルをサポートしています。これら高度なモデルのおかげで、新しいGPUクライアントは我々にとって非常に有用なものになりました。
見えないところにもたくさんの変更があります。前世代のクライアントはGPU特有の難しい問題をいくつも抱えていましたが、これを第二世代クライアントで(我々が知る限り)全部修正しています。この修正で重要な部分は、DirectXの代わりにATIのCALを使ったことです(前世代クライアントはDirectXを使ったため、問題が目立ちました)。CALを使う大きな利点の一つは、DirectXのコンテキストスイッチがクライアントに影響を与えないことです。高速ユーザ切り替えやコンピュータのロックを行っても、GPUの処理には何ら影響ありません。ただし、リモートデスクトップはGPUクライアントに干渉するらしく、接続が切れるとFahCoreも落ちてしまいます。VNCはこの問題が発生しないため、代用に使えます。
このクライアントを動かしているとき、GPUをゲーム等に使っても大丈夫ですか?
はい。旧GPUクライアントはGPUを使う様々な操作と干渉しましたが、新しいCALベースのクライアントは心配いりません。動画を観たりゲームをしても、GPUクライアントの動作は処理が遅くなったり止まって見える以外に何ら影響ありません。新しいクライアントはアプリケーションがDirectX排他モードを要求すると一旦停止しますが、ログファイルには何も残りません。排他モードを要求しないDirectXプログラムの場合は、GPUクライアントは処理速度が遅くなり、またアプリケーション側の性能に低下します。フルスクリーンで動画を観る場合は、GPUクライアントからの影響はありません。
トラブルシューティング
前はちゃんと動いたのに、Early Unit End (EUE)がたくさん出るようになりました。どうすればいいですか?
GPUを派手に使うゲームがGPUにおかしな状態を残すと、EUE (Early Unit Endエラーメッセージ) が頻発する現象を確認しています。コンピュータを再起動すれば問題はなくなるでしょう。いい解決策を現在検討しています。
クライアントに、サポート対象のGPUがないと怒られます。
クライアントが At present, only ATI Radeon HD 2xxx/3xxx and ATI FireGL Vx6xx GPUs are supported というエラーを表示するとき、クライアントはそのGPUカードを認識できていません。クライアントがサポートする2xxx/3xxxモデルのGPUを持っていてこのエラーに遭遇したときは、十中八九GPU2クライアントが動かないカスタムデバイスドライバが原因と考えられます。OEMやノートPCメーカーはオリジナルのCatalystに修正を加え、製品に添付して出荷しています。最新のATI Catalystドライバをダウンロードしインストールしてください。
現在、2xxx/3xxxモデルをプライマリのディスプレイアダプタとして使用していない場合も、同じエラーに見舞われるようです。CoreStatus = FFFFFFFF (-1) エラーになることもあります。これはATIのカードをプライマリに変更すれば解決するでしょう。
GPUクライアントはどこにインストールされるのですか?
新しいGPUクライアントはシステムトレイ版であり、v6.x CPUシステムトレイ版と同様に、Windowsアプリケーションの標準的なインストール手順に従ってインストールします。この新しい種類のクライアントは従来のGUI版に似ていますが、大きく変更されており、またタンパク質の視覚化モジュールが分離しています(視覚化版は後からリリースされます)。
クライアントのexeファイルはディレクトリを選択してインストールできます。デフォルトの場所は
C:\Program Files\Folding@home\Folding@home-gpu\
それ以外のいわゆるデータファイルは、WindowsXPの場合
C:\Documents and Settings\<ユーザ名>\Application Data\Folding@home-gpu\
Windows Vistaの場合は下記にインストールされます。
C:\Users\<ユーザ名>\AppData\Roaming\Folding@home-gpu\
Note: クライアントのインストーラはデータファイルへのショートカットをFolding@homeプログラムフォルダの中に作成します。また、GPUクライアントを起動するショートカットをスタートアップフォルダに作成します。このスタートアップショートカットは「リンク先(T):」と「作業フォルダ(S):」欄で特定のファイルの場所を示しています。このデフォルトのショートカットに対し(複数GPUクライアント起動のところで説明した)クライアント起動オプションの追加をしてはいけません。起動オプションを追加するときは、「リンク先(T):」と「作業フォルダ(S):」が適切なファイル・フォルダを指し示す新しいショートカットを作成してください。スタートアップに元からあるショートカットと置き換えても構いません。GPUクライアントを起動するショートカット作成は慎重に行ってください。誤ったファイルの場所を指定すると、現在のWUデータが失われる可能性があります。なお、 -local オプションはクライアント複数起動時でも指定する必要がありません。個々の作業ディレクトリは、ショートカットの「作業フォルダ(S):」欄で指定されます。
coreがDLLを見失ってしまいます。
アンチウイルスソフトが動いている環境で、異常な振る舞いを示すことを確認しています。原因は調査中です。この現象に見舞われたら、試しにもう一度起動してみると動きます。
DLLエラーのダイアログ窓がポップアップします。どうなっているのですか?
DLLエラーがポップアップしたら、インストール先(デフォルトでは C:\Program Files\Folding@home\Folding@home-gpu)に行き、amdcalcl.dll と amdcalrt.dll が FahCore_11.exe と一緒に存在していることを確認してください。そして、クライアントをその場所から実行してください。
新しいDLLで問題が出る原因は?
クライアントが使用している新しいシステム(CAL)は、いくつかのDLLを使って動作します。我々はDLLに絡む問題を回避するため静的リンクを使う可能性も検討していますが、今のところDLLを使うしかありません。
開発者について
アルファベット順で:
- Adam Beberg (Pande研究室): クライアント修正、GPUのAPI基礎部分
- Dan Ensign (Pande研究室): サーバセットアップ、サイエンス、テスト
- Mark Friedrichs (Pande研究室, Simbios): core科学技術計算コードアップデート、テスト
- Mike Houston (AMD): テスト、問題解決、GPUチューニング
- Vijay Pande (Pande研究室): プロジェクト管理、不適合者たちをうまく使う、などなど
- 本FAQ作成と初期ベータテストに協力くださったFolding@homeコミュニティフォーラムのモデレータ各位にも感謝します。
関連情報:
Last Updated on April 29, 2008, at 06:40 AM