2014-04-21

Thunderbolt外付けPCIeボックスを他のケースに換装してみる

弊社から販売しているThunderbolt接続のPCIeボックス「NA-211TB」ですが搭載している電源ユニットが250Wとなっています。
まぁ通常使用する分には何ら問題無い容量ではあるのですが、例えばGeForce GTX770クラス以上のGPUボードを載せようと思うと微妙に電源容量が足りなくなります。
当然容量が足りないと使用中にいきなりリブートがかかったりしてしまいます。

さて、どうしたものか。「チャンスは最大限に生かす、それが私の主義だ。
と言うことで今回は250W以上を消費するGPUボードを載せられるボックスを作成してみます。

用意するもの

簡単に言いますとNA-211TBに載っているThunderboltアダプタボードと、基板を取り外し別のPCケースに取り付けるという訳です。

※お約束事:NA-211TBを分解した時点で保証対象外となりますことご了承ください。

PCケースはなかなか良い物がなくて難儀したのですが、SilverStoneの煙突型ケースがカッコイイかなと思い選択しました。このモデルですがSST-FT03S-MINIJというmini-ITXが載せられるケースもあります。が、そちらはコンパクトなのはいいのですがPCIスロットに入る長さ(ケース内の高さ)が254mmまでとなっていて、これではGeforce TITANクラスのGPUボードが入りません。また拡張スロットパネルが2個しか空いていないので1スロット分無駄になってしまいます。なので一回り大きくなってしまいますがSST-FT03Sの方をチョイスしました。
電源ユニットはATX電源であれば何でも良いのですが奥行きが180mmまで(モジュラー式は160mm)となっている点だけ注意です。今回は650Wの電源を調達しました。
「確か、煙突型ケースと言ったな・・・」

Thunderboltアダプタボードに付いている謎(?)の3ピン

NA-211TBに付いているThunderboltアダプタボードには3pinのコネクタが付いていて電源ユニットから繋がっています。しかしこれはアダプタボードに電源を供給しているわけではなく、5Vsb(5Vスタンバイ)の信号を通しているだけです。基本的にThunderboltの外部ユニットはそれ自体パワーオンスイッチを持っておらず、繋いだ母艦(Mac/PC)の電源オンオフに連動して起動/終了します。つまりThunderboltのケーブルで繋がれた所から母艦の起動を知り5Vsb信号を通してエンクロージャーの電源をパワーオンにしている訳です。

「電源コネクタとは違うのだよ、電源コネクタとは!」
さて、この5Vsbの信号をどうやって通したら良いでしょう?どこを探しても5Vsbのケーブルなんて電源ユニットに普通付いていませんし別売りで販売されてもいません。
なら自作してしまえば良いじゃない。ってことでこのケーブルを作成します。
ロジックとしては必要なピンからケーブルを分岐させて3pinコネクタを接続する形です。

※ATXの24ピン延長ケーブルを用意したのは、いきなり電源ユニットのコネクタに付いているケーブルを加工して失敗した場合にちょっと痛いなーと思ったからです。工作に自信があれば直接やってしまっても構いません。

で下図。使用する3つのピンは5VsbとPS-ON、GNDです。
24pinのピンアサインを見てみると9番ピンと16番ピンがそれにあたります。GNDは24ピンから取れば良いでしょう。

「ATX 24pinアサインリスト。すごい・・・親父が熱中するわけだ・・・」
早速作業にとりかかります。
延長ケーブルのボード側の方のケーブルを3本外します。前述の通り9/16/24番ケーブルです。色が付いているので間違うことは無いでしょう。
引き抜く時は手で引っこ抜いても頑張れば抜けますが、後から差し込む時にエライ苦労するので、ピン抜きを用意した方が無難です。ピン抜きの作業は「ATX 電源コネクター ピン抜き」でググると参考になるものが見つかるでしょう。
私はググって参考にしたブログからホッチキスの針を利用しました。ホッチキスの針を2本ほど取って片方をペンチで真っ直ぐにしてから差込むと、ピンが抜けないようする為の「返し」の部分を押す様な感じになります。
引き抜く時はやや力が入りますがピン先端の「返し」の部分が綺麗な状態のまま引っこ抜けるので分岐後に挿す時に楽です。
「よく見ておくのだな。改造というのはドラマのように格好良いものではない。」
「見えるぞ!私にもピンの中程にある出っ張りが「返し」が見える!」
次にピン抜きで外したケーブルに分岐させるケーブルを取り付けます。同じ色のケーブルが入手出来ればいいですが無ければ間違えないようにテプラでも貼りましょう。
(分岐というのはつまり一旦入ったケーブルの所からまた追加のケーブルを出すという事です)
分岐させるケーブルは元々付いているケーブルのカシメを外して一緒に取り付ける方法もありますが、出来ればハンダで付けてしまった方がベター。とにかく外れないようにします。
「悲しいけどコレ、黒と緑と紫のケーブルなのよね。」
3つのケーブルを分岐させましたら、最後にThunderboltアダプタ側のケーブル処理をおこないます。
上図は3pinコネクタの配線図です。
矢印形状のノッチがある方を上として正面から見て、左側がGND(黒)、真ん中が5Vsbの紫、右がPS-ON(緑)です。
ナイロンコネクター3pinを用意し、それぞれを結線します。
この作業自体は簡単です。ZL2503-3PSに金具が付属しているので、そこに線を差込みカシメるだけです。
「これが、ZL2503-3PSか・・・」

ボードを外して新しいケースに取付

NA-211TBからThunderboltボードと基板を外します。
PCI-Expressの基板をケースに取り付けますが、マザーボードとは違うので固定する穴が全く違います。
スロット上部の1箇所は合ったのですがそれだけだと固定されないので、もう1箇所ネジ止め出来る場所を作らないといけません。
当方の場合は3mmの電動ドリルを使って基板下部を固定出来るような穴をケースに開けました。
そこにケースに付属していた六角スペーサーを瞬間接着剤でケース側面に固定し、そこにインチネジでThunderbolt基板を固定しました。(まぁ上下2箇所止めておけば問題無いでしょう)
マザーボードを取り付ける六角スペーサーは手持ちが無い場合は別売りでも売ってます。(アイネックス PB-021A等)
「Thunderbolt、行きまーす」
あとはThunderboltアダプタボードを基板に取り付け、先に自作した3pinコネクタを接続すればOKです。
今回使用した煙突型ケースはパッと見大きいですが床専有面積はそれほどでもなく、デスク下に置いておいてもさほど邪魔にもならないのでなかなか良い選択だったかなと思います。
何より自分の使いたい電源ユニットを使用出来るのはステキすぎます。
あ、一応改造になるので基本は自己責任でお願い致します・・。
「こいつ・・・動くぞ・・・」
P.S.
動作確認ではGeForce GTX TITANを装着しかなり重いベンチマーク(Valley Benchmark/Haven Benchmark)を繰り返し流してみましたが、何ら問題はありませんでした。

2014-04-11

MacでThunderbolt外付けBOXにGPGPUを認識させるには(その後)

1月に書いた「MacにてThunderbolt接続のPCI-Express拡張ボックスを使いGPUカードを認識させる」記事はもの凄い反響とアクセスがありました。
お陰様でNA-211TBはかなりの売れ行きを見せ・・・と言いたい所ですが国外でも需要が多いらしく工場から弊社に割り当てられる分に限りがあり現在でもお待ち頂いているお客様がいる現状です。状況的には今月下旬くらいから生産量もUPするので入荷量も安定してくる予定です。
またThunderbolt接続のPCIe箱でグラボを動かしてしまうという禁断(?)の手を出してしまい、App◯eやInt◯lからクレームでも来たらどうしようと内心キョドってましたが、未だに何の音沙汰もありません。ま、どうせこんな超小粒企業の事なんて目にも入ってないでしょうから取り越し苦労でしたわ。

幾つかのユーザー様から頂いたレポートや自社で検証した結果から以下の事が現在分かっています。

  • 現状複数枚のGPUボードを挿してもMacが起動しない。(1枚挿しだと起動します。2枚以上だと起動時のクルクルアイコンが止まって動きません)
    ※4/23 追記:MacOSX 10.9.2にupdateした所問題無く2枚挿しでも起動して認識出来ました。(TITANと760)
  • 4/11現在動作が確認されているカードはGeForce GTX TITAN、760、680
  • 動作が安定しないカードは780Ti
  • NA-211TB搭載の250W電源でTITANは無理。最初は立ち上がるが負荷をかけ続けると落ちることがある。これに関しては別の方法にて実験をしましたが詳細については後日。→こちらです
  • MacBookPro Retina (Early 2013)にて4K画像のハンドリングをおこないましたが、4KからHDへの変換処理をおこなった際のフレームレートは6-7fps程度の所が30fps弱へUP。
  • DaVinci Resolveでレンダリングの速度を検証したところRAWファイルの違いにより速度の差が出る。F65RAWだと1.2倍程度、ARRIRAWだと3.8倍程高速化。
  • Windowsだとやっぱり無理。
注)上記データはThunderbolt1のエンクロージャーでのものです。現在製品は全てThunderbolt2へ移行していますので、パフォーマンスが異なる可能性があります。


2014-04-10

How to recognize GPGPU via Thunderbolt external PCIe Box at MacOSX

Currently, connection of GPGPU is not possible in the PCI Express box via Thunderbolt.
It seems to be the intention of Intel, but does not allow the OS to recognize the board to be mounted on the graphics board at present for the time being.
It is not possible to operate that there is no driver that supports Thunderbolt connection RAID card, even NIC.
Everyone thought. “Huh? Though Thunderbolt should support PCI-Express, why does it set a limit to?”
Yeah I also thought. Well, there seems to be a complex situation.


But always there are people who figure out how to hack Go through such limit in the world, there are people who challenge in a variety of ways.
I also tried to challenge in a similar way to see the blog of an overseas person.
He seems to be connected to a PCI-Express after convert the ExpressCard once, but let's challenge by connecting directly because there is an external PCI-Express box of Thunderbolt at hand.


Things to prepare



  1. Mac (I was prepared MacBookPro Early 2013)
  2. Thunderbolt2 PCIe Enclosure NA211TB
  3. NVIDIA GPGPU board  (I used GeForce GTX760)
  4. Text Wrangler (text editor)
  5. NVIDIA’s CUDA Driver for Mac


I think GPGPU board's limit GTX760 class.
Built-in power supply of NA211TB is 250W.
Power consumption is a little worried with the GTX770's or more.




Rewrite the kext file



And it is necessary to rewrite a little bit kernel extension files to work the GPU board via Thunderbolt. (Do not worry, It is not so much.)
Editor software is required when rewriting the kernel extension file. It is an application of that handy Text Wrangler. Rather than the version that comes out by searching from the AppStore, this app, please use the version which is provided by the developer of Text Wrangler absolutely. (not good Otherwise)


/// note: The following procedure at your own risk. Please be sure to take a backup in case of emergency. ///


Open the following file: When you have prepared them.


/System/Library/Extensions/NVDAStartup.kext
/System/Library/Extensions/IONDRVSupport.kext
/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAController.kext


For example,
"Show Package Contents" by secondary-clicking on the NVDAStartup.kext.
There is a file called "info.plist" When you open the Contents folder.
Select and "Open with" and "TextWrangler" secondary-click on it.
And Key / string written by xml When you open the file will be displayed.


In this file, look for sections beginning with <key>CFBundleIdentifier</key> and add just before </dict>, the two following lines :


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


There are several sections that CFBundleIdentifier. Not miss it, please add the cord.


Note: If you update your OS, seems there is a need to do this again.

Install the Mac version CUDA driver


Next, Download the CUDA driver for Mac from Nvidia web site. Currently, the latest version is 5.5.47. (Support OSX10.9 Marvericks)

*note: Several NVIDIA GPGPU board is native support from MacOSX 10.8.

Finally, install the GeForce GTX760 to NA211TB, and connect to the MacBookPro Thunderbolt cable.
Since power turned ON in conjunction with the power of the Mac Thunderbolt product, and then turn on the Mac after you must be connected.

Are you ready?


Let's go! Power ON!!!
If there is no problem in the rewriting of the kext, screen will be displayed.

I've done it!
Checking system report...
I tried to play Call of Duty2 demo version

PS;

Note: Some video software (ex. DaVinci Resolve). Better not connect an external display, has confirmed that the performance is increased.
In this case, GPGPU board should be the only calculated. Do not connect a display.

Note:
There is a new article that supports the MacOSX 10.9 Mavericks.