※この記事はAIを活用して作成しています。
ねえ、聞いてくれるっ?
私、最近ね、とんでもない体験をしちゃったのですよっ!
高性能なGPU、Nvidia Tesla P100。もうね、これが手に入った時のワクワク感と言ったら、たまらないものがありますよね。
そう。
AIやディープラーニングの世界に飛び込むには、まさに夢のような存在、というわけですな。
私の愛機、Precision 5820 Tower。この子にP100を載せれば、もう最強!そう信じて疑わなかったのですっ。
しかし。
いざ、P100を Precision 5820に差し込んでみた時、ですよ。電源ON!
……プツン。
またON!
……プツン。
そう、ひたすら再起動を繰り返す、あの「Boot Loop」ですよっ!
「え、うそでしょ!?」
「なんで!?」
「せっかくのP100が、動かないなんてっ!」
目の前でPCが何度も再起動を繰り返す絶望感…あなたも同じ経験、ありませんか?
もし今、目の前でPCが同じように真っ青になっているのなら…どうぞ、深呼吸してくださいな。
大丈夫なのですよ。
実はね、これ、ほとんどの場合、故障じゃないんですよっ!
「え、ホントかいな!?」
ホントなのですよっ!
これはね、「グラフィックボードが求めるデータの使い方が、マザーボードの限界をちょっとだけ超えちゃった」ことによる、設定の食い違いが原因、というわけですな。
私自身、もう半泣きになりながら、夜なべして解決策を探したのですからっ。
その結果、見つけましたよ、奇跡の裏技をっ!
今日は、私が辿り着いたこの「ちょっと特殊だけど、ちゃんと動くようにする方法」を、余すことなくあなたにお伝えしちゃいますっ!
そう。これで、あなたも絶望の淵から這い上がれる、というわけですな。
さてさて。
まずは、一体何が起こっているのか、ざっくりと説明させてくださいな。
「なんで私のP100ちゃん、動いてくれないのよーっ!」って思いますよね。
これね、原因はTesla P100が持っている「Large BAR」という、とっても便利な機能にあるのですよ。
「ラージバー?って何?」
ざっくり言えばですね、このP100という子、とってもパワフルなので、一度に「16GB」という、それはそれは巨大な「データの通り道」を一気に確保しようとするわけですな。
「おーい!もっと広い道を開けてくれっ!16GB分一気に通るぞーっ!」って叫んでいるイメージ、なのですよ。
しかし。
私たちの愛しいPrecision 5820くんのマザーボードは、この巨大な通り道を一度に扱う機能(ReBAR、リサイズアブルバーというのですよ)を持っていないのですね。
「え、え、そんなに急に言われても…うち、そんなに広い道、用意できないよぉ…」ってなっちゃう、というわけですな。
結果、データの受け渡しに失敗して、パソコンが「あれ?なんかおかしいぞ?」って思って、起動プロセス(POST)の途中でエラーを起こし、再起動を繰り返してしまう…というわけなのですっ!
そう。
だから、故障ではない、なのですよ。
ただ、P100くんの「要求サイズ」と、5820くんの「対応サイズ」が、ちょっとズレているだけ、というわけですな。
じゃあ、どうすればいいか?
解決方法は、とってもシンプルなのですよ。
P100くんの「データの通り道サイズ」を、16GBから、Precision 5820くんが無理なく対応できる「256MB」へと、ちょこっと書き換えてあげる、というわけですな。
そうすれば、お互いが「うん、これなら大丈夫!」って納得して、無事に起動してくれるようになる、なのですよっ!
「へぇ〜!そんなことできるんだ!」
できるんですっ!
でもね、ここからがちょっとトリッキーなのですよ。
この作業、残念ながら問題が起きているPrecision 5820単体ではできないのです。
なぜかというと、P100が動かないから、中身をいじることもできない、というわけですな。
なので、「Tesla P100をちゃんと認識して、BIOS画面まで起動できる、別のパソコン」を用意する必要があるのですよっ。
私の場合は、OptiPlex 3020という子が活躍してくれましたっ!
さあ、準備に取り掛かりましょうっ!
必要なものは、これらなのですよっ。
まずは、Tesla P100がちゃんと認識できる、「別のPC」ですね。
これがね、意外と重要ポイントなのですよっ!ちゃんと認識しないと、始まらないから、というわけですな。
次に、「LinuxのLive USB」です。
私のおすすめはLubuntuなど、軽くて起動が早いものなのですよ。OSをインストールするわけではないので、気軽に使えるのがいいですね。
そして、グラフィックボードの中身を書き換えるための、とっておきのツール「nvflash(Linux版)」が必要になりますっ!
これはね、まるで魔法の杖、というわけですな。
最後に、「もう一本のUSBメモリ」。
nvflashを入れたり、万が一のためにP100の現在の設定データをバックアップしておくのに使いますよ。これも大事な保険、なのですよっ!
「ふむふむ、これ全部揃えるのかい?」
そう。これでね、絶望から希望への第一歩を踏み出せる、というわけですなっ!
準備ができたら、いよいよ作業開始なのですよっ!
ステップ1:別のPC(OptiPlex)でGPUを認識させる
まずは、作業用のPCでP100くんを「見える状態」にしてあげましょう。
用意したLubuntuのLive USBから、別のPCを起動しますよっ!
起動直後のメニュー(GRUB画面というのですよ)が出たら、linux /casper/vmlinuz … で始まる行を探してくださいな。
キーボードの矢印キーでその行を選んだら、splash と — の間に、pci=realloc と追加で入力するのですよっ!
こんな感じになりますね。
… splash pci=realloc —
入力したら、Ctrl + X を押して起動してくださいっ。
これで、一時的にGPUのメモリ割り当てが調整されて、無事に起動できるはずなのですよ!
起動したら、ターミナルを開いて、lspci | grep -i nvidia と入力してみてくださいな。
「おっ!P100が認識されてるっ!」
そう。これで一安心、というわけですなっ!
ステップ2:書き換えツール(nvflash)の準備
次に、魔法の杖「nvflash」を準備するのですよっ!
まずは別のWindows PCで、TechPowerUpさんのサイトからnvflashをダウンロードして、もう一本のUSBメモリにコピーしてくださいな。
コピーできたら、そのUSBを作業用PC(OptiPlex)に挿します。
ターミナルで以下の操作をして、ツールを使える状態にするのですよっ!
ls /media/
これで、USBメモリがどこにいるか、場所を確認するのですよ。
cp /media/lubuntu/[USB 名 ]/nvflash ~/
見つけたら、nvflashを作業場所(ホームディレクトリ)にコピーします。
chmod +x nvflash
最後に、このコマンドで実行権限を与えてあげれば、いつでも使える状態、というわけですなっ!
ステップ3:GPUのモードを書き換える(最重要っ!)
さあ、ここが一番のヤマ場なのですよっ!
いよいよ、P100くんの設定を「巨大な通信」から「標準的な通信」へと書き換えますっ!
でもね、その前に、とっても大切なことがあります。
それは「バックアップを取る」ということ。
万が一のために、今の設定を保存しておくのですよ。
sudo ~/nvflash –save ~/backup.rom
このコマンドで、現在の設定ファイルがbackup.romという名前で保存されます。
保存できたら、忘れずにUSBメモリにコピーしておくのですよっ!
cp ~/backup.rom /media/lubuntu/[USB名]/
これで、保険はバッチリ、というわけですな。
そして、いよいよ本命のモード切り替えっ!
以下のコマンドを実行してくださいな。
sudo ~/nvflash –gpumode graphic
このコマンドを実行すると、「本当にやるの?」という確認メッセージ「press “y” to …」が出るはずです。
迷わず「y」を入力して、エンターを押してくださいなっ!
「ドキドキするねっ!」
そう。
成功すると、こんなメッセージが出るはずなのですよっ!
「Successfully updated GPU mode to “physical_display_enabled_256MB_bar1” (Mode 1). A reboot is required for the update to take effect.」
「やったーっ!うまくいったみたいっ!」
そう!グラフィックスモードへの切り替えが完了した、というわけですなっ!
これで、P100くんはPrecision 5820くんと仲良くできるようになった、なのですよっ!
ステップ4:元のPC(Precision 5820 Tower)に戻す
設定が終わったら、P100くんを作業用PCから外して、元の愛機Precision 5820に差し直しましょうっ!
しかし、ここでもう一つ、忘れちゃいけない大切なことがありますよ。
P100をPrecision側に差し込む前に、必ずBIOS設定を確認してくださいな。
Precision側のBIOS設定で、「Above 4G Decoding」という項目を「有効(Enabled)」にしておくのですよっ!
これがね、意外と見落としがちだけど、とっても重要なポイントなのですよっ!
これで、すべての準備が整いました。
ドキドキしながら、Precision 5820の電源をONっ!
……どうでしょう?
今度こそ、無事に起動できたのではないでしょうかっ!?
私の場合、この手順で、本当に起動できたんですよっ!
あの時の感動と言ったら…もうね、言葉にできないほど、というわけですなっ!
ねっ?
絶望から希望へ、ちゃんと道は開けるのですよっ!
まとめると、こうですな。
あなたのPrecision 5820がTesla P100で起動しない原因は、P100くんが要求する「データの通り道」が、Precisionくんのマザーボードの「器」よりも大きすぎたから、というわけなのですよ。
そして、その解決策は、ちょっと手間がかかるけれど、別のPCを使ってnvflashというツールでP100くんのモードを書き換えてあげること。
最後に、元のPCに戻す前に、マザーボードのBIOS設定(Above 4G Decodingを有効にすること!)を忘れずに確認する、ということでしたねっ!
この作業はね、たしかにちょっと高度な部類に入るかもしれません。
でも、一つ一つ丁寧に、落ち着いて進めれば、必ず成功できるはずなのですよっ!
あなたのPrecision 5820が、Tesla P100という強力な相棒を得て、バリバリと動いてくれることを、私も心から願っていますっ!
長くなったのでここまでっ!
次回もお楽しみにっ!


コメント