2014-11-28

【10.9編まとめ】MacでThunderbolt外付けBOXにGPGPUを認識させるには

MacにてThunderbolt経由で外付けPCIeボックスにGPUを認識させる手順のまとめです。細かいバージョン毎に記事が散逸していましたので、ここではOSX10.9までの手順をまとめようと思います。

用意するもの
  1. Mac
  2. MAXSERVE Thunderbolt接続PCI-Express拡張ボックス NA-211TB
  3. NVIDIA製GPGPUボード
  4. Text Wrangler (テキストエディタ) ※必ず開発元からダウンロードしたもの
  5. NVIDIA Mac版CUDAドライバ
  6. NVIDIA WebDriver (モディファイド版)
各ダウンロード先


モディファイドWebDriver
  1. カーネルエクステンションを書き換えます。
    /システム/ライブラリ/Extensions内にあるkextファイルを2つ使用します。
    NVDAStartup.kextとIONDRVSupport.kextです。
    これらのファイルを右クリックして「このアプリケーションで開く」-「TextWrangler」として開きます。その中に「info.plist」という項目がありますので、それをクリックして中身を見てみます。中にはxmlで書かれたkeyとstringが表示されますので、その中から

    <key>CFBundleIdentifier</key>

    と書かれたセクションを見つけ出します。上記が記述されたセクションの最後に

    <key>IOPCITunnelCompatible</key>
    <true/>

    とコードを追加します。

    </dict>

    の手前に追加です。CFBundleIdentifierというセクションが幾つかあるので、それを一つ残らず見落とさないようにして必ず上記コードを追加してください。

    ※書き換え場所が分かり難い部分があると思うので、参考までに追記する必要のあるタグ「CFBundleIdentifier」を青字で表記し、追記部分を赤字で表記したサンプルファイルをPDFにてアップしておきました。但しマシン構成環境によってkextの中身は異なりますので、サンプルをそのまま適用することは出来ません。参考までにご利用ください。
    IONDRVSupport_Sample.PDF
    NVDAStartup_Sample.PDF


    青矢印で示したキーがあるセクションの最後に赤矢印の2行を追加で記述

  2. Mac版CUDAドライバをインストール
    各ダウンロード先に記載されているされているリンク先からダウンロードしてください。これは最新の物でOKです。
  3. WebDriverのモディファイド版をインストール
    本来MacProにしかインストール出来ないNVIDIA製GPUボードのドライバをMacのどの機種にもインストール出来るようにしたドライバを入れます。
    各ダウンロード先に記載された10.9.4か10.9.5用のドライバを入れてください。対応しているOSバージョン以外では動作しませんのでご注意を。
    ※MacOSX10.8でNVIDIA GTX760、770位までのGPUボードを使用される場合は、モディファイド版ドライバをインストールしなくても動作します。OSXに入っているドライバがGPUを認識するからです。
  4. キャッシュのクリア
    WebDriverをインストール後、一度再起動しろと言われるので再起動をおこなったあと、kextのキャッシュをクリアする為に最後の作業をおこないます。
    ターミナルを起動し、以下のコマンドを打ちます。

    sudo kextcache -system-caches
以上で作業完了です。
一旦電源を落としてGPUボードを挿したNA-211TBを接続し、Macの電源をオンにします。
システムレポートを確認し、「グラフィックス/ディスプレイ」にNVIDIA(GPUボード名)が表記されていれば成功です。万が一「ディスプレイ」としか表記されておらず、下の説明に「読み込まれたkextファイルはありません」等の表示がある場合は失敗しています。ちゃんとkextファイルの書き換えが正しいかどうか確認してください。
また書き換えた後は必ずターミナルからキャッシュのクリアをおこなってください。

---注意事項---

上記作業をおこなう場合は必ずシステムのバックアップを取ってからおこなってください。上記作業に起因する不具合等は当方一切の責任を負えませんので自己責任でお願いします。

【メモ】
※TextWranglerは開発元からダウンロード出来るものを使ってください。AppStoreから入手出来るバージョンは正常に保存出来ません。
※10.10 Yosemiteについては現在検証中です。
※GTX970/980については未だ動作確認が取れていません。