2009年11月18日 20:10

Intel Mac版BOINCでCUDAを有効にする

このエントリーを含むはてなブックマーク

正確なバージョン履歴は分かりませんが、Intel Macにおいて、現在配布されているBOINC 6.10.17ではnVidia CUDAデバイスを搭載していても、メッセージに"No usable GPUs found"と表示されてしまうことがあります。これを修正して、BOINCが正常にCUDAデバイスを認識するようにできます。

なお、これはアプリケーションの改造の一種なので、自己責任でお願いいたします(おそらく、失敗してもBOINCの再インストールで直るかとは思います。)

これは、BOINC本体は64ビットバイナリを含むUniversal Binaryなのにもかかわらず、現行(2.3.1a)CUDAドライバが64ビットバイナリに対応していないことが原因です。

Mac OS Xの実行ファイルローダはUniversal Binaryから、自機にとって最も適したアーキテクチャの実行ファイルを取り出して実行します。このとき、Core 2 Duo以降のMacは64ビットに対応しているため、x86_64アーキテクチャを優先します。一方、.frameworkなど動的ライブラリは、実行中アプリケーションと同じアーキテクチャのものしかロードできません。よって、BOINC起動時にx86_64バイナリが実行されると、CUDAのi386バイナリがロードできなくなってしまうのです。

これを直すには、BOINCのバイナリをi386のみ動作するようにします。具体的にはTerminalで以下のようにコマンドを実行します。

$ cd /Application/BOINCManager.app/Contents/Resource/
$ sudo mv boinc boinc_old
$ sudo lipo -extract i386 boinc_old -output boinc
$ sudo chown boinc_master:boinc_master boinc

これによりBOINCの実体である実行ファイルboincからi386バイナリのみを取り出して、かわりに使用させることが出来ます。これでBOINCがCUDAデバイスを認識するようになるかと思います。

ただし、知る限り、Macに対応したCUDA利用プロジェクトが見当たりません...ご存知の型はお教えいただけたら幸いです。

カテゴリ

タグ

関連記事

  1. FreeBSD 8.0-RELEASEのZFSブートでハマる

トラックバック

このブログ記事を参照しているブログ一覧: Intel Mac版BOINCでCUDAを有効にする

このブログ記事に対するトラックバックURL: http://www.memorize-being.net/x/mt-engine/mt-tb.cgi/55

コメントする

このブログ記事について

このページは、cottonが2009年11月18日 20:10に書いたブログ記事です。

ひとつ前のブログ記事は「デジカメ購入」です。

次のブログ記事は「FreeBSD 8.0-RELEASEのZFSブートでハマる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1
Valid XHTML 1.0 Transitional
Valid CSS!
Mozilla Firefox ブラウザ無料ダウンロード