モデル別実行レシピ

CMP 170HXのメモリアンロックをどう始める?

対応ドライバー・カーネルヘッダー・Secure Bootを先に整え、プロファイルを確認して再起動します。

cmpunlockerはLinux上でNVIDIAオープンカーネルモジュールにパッチを当て、CMP 170HXのメモリ構成を変更するツールです。リポジトリとドライバーの条件を満たしてインストールスクリプトを実行し、再起動すると、選択したプロファイルの容量がドライバーに表示されます。自動検出から始め、実際の容量を確認します。

まずドライバーとカーネルのバージョンを記録してください。導入後は再起動してメモリー容量とPCIeリンクを確認します。問題が起きたら、導入ログと削除手順を使って元に戻せます。

実行条件と要点
  • 初回ビルドの前に、対応するオープンドライバー・ライブラリ・ファームウェアと実行中カーネル用ヘッダーをそろえます。
  • 最初はプロファイルの自動検出を使い、ハードウェアを確認した場合のみ8GBまたは10GBプロファイルを指定します。
  • インストール・ロールバックのどちらも、スクリプト実行後に再起動してnvidia-smiの結果を確認します。

最初にLinuxとドライバーの前提条件を確認します

READMEの要件は、Linux x86-64、root権限、NVIDIA CMP 170HX、NVIDIAオープンカーネルモジュールを含む610.xx.xx以降の対応ドライバー、同じドライバーブランチのライブラリ・ファームウェア、実行中カーネルに一致するヘッダーです。Python 3はビルド時に8GBまたは10GBのメモリジオメトリを選ぶためにも使われます。パッケージ名はディストリビューションごとに異なるため、カーネルヘッダーの導入方法は各ディストリビューションの案内に従ってください。

任意の最新ドライバーを入れるのではなく、READMEの対応バージョンを確認してください。現在のREADMEには610.xx.xx以降と615.78.08が記載されています。ドライバーのライブラリとファームウェアが同じブランチか、ヘッダーがuname -rで示される実行中カーネルと一致するかも確認します。

Secure Bootは無効にする必要があります。パッチ済みカーネルモジュールは署名されておらず、有効なままでは読み込まれません。BIOS/UEFIで設定を変更・保存し、Linux起動後に状態を確認してください。初回インストールではビルド用に対応するNVIDIAオープンカーネルモジュールのソースをダウンロードするため、ネットワーク接続も必要です。

カードのランクに合うメモリプロファイルを選びます

既定のインストールではカード情報を読み取り、プロファイルを自動検出します。初回は自動検出のままにします。メンテナーのREADMEによると、8GBカード用の8gbプロファイルは64GB構成、10GBカード用の10gbプロファイルは40GB構成です。ただし一部の8GBシングルランクカードは32GBの場合があります。出荷容量とランクが不明なら、プロファイルを強制指定する前にカード情報を確認してください。

8GBまたは10GBの手動指定は、カードがそのプロファイルに合うと確認してから使ってください。誤ったプロファイルでは、インストール時に計算されたメモリジオメトリと実カードの構成が異なる可能性があります。インストール時の出力を記録し、再起動後の結果と照合すると問題箇所を見つけやすくなります。

出荷時メモリごとのメンテナープロファイル
出荷時の構成プロファイルREADME記載の結果
8GBカード自動検出または8gb64GB構成。一部シングルランクは32GB
10GBカード自動検出または10gb40GB構成
作業台にデータセンター用アクセラレーターカードが1枚置かれ、横にルーペとノートがあります。
インストール前に、カードの出荷時メモリとランクを確認します。

リポジトリを取得してインストーラーを実行します

要件を満たしたLinuxホストでメンテナーのリポジトリを複製し、プロジェクトフォルダーに移動して標準インストーラーを実行します。NVIDIAモジュールにパッチを当て、現在のカーネル用モジュールをビルドするため、完了するまでターミナルを閉じないでください。

プロファイルを自動検出してインストール
git clone https://github.com/amoghmunikote/cmpunlocker.git
cd cmpunlocker
sudo ./install.sh
リポジトリの手順に沿って必要なモジュールをビルドします。
ワークステーションのモニターに空のウィンドウが表示され、ケース内にアクセラレーターカードが装着されています。
モジュール導入では画面上の設定だけでなく、ドライバーとカーネルを扱います。

必要な場合にだけメモリプロファイルを指定します

出荷時メモリとランクを確認し、自動検出ではなく特定のプロファイルが必要と判断した場合は、インストールコマンドに--profileを付けます。8GBカードには8GBプロファイル、10GBカードには10GBプロファイルを選びます。オプション名はリポジトリREADMEのとおりに入力してください。インストール後にプロファイルを変更する場合は、既存の導入を削除してから新しいプロファイルを適用します。

8GBカード用の手動プロファイル
sudo ./install.sh --profile=8gb
対応するランク構成を確認した8GBカードでのみ選択してください。
10GBカード用の手動プロファイル
sudo ./install.sh --profile=10gb
10GBカードと確認できた場合は、このコマンドだけを選択してください。

再起動後にメモリとPCIeリンクを確認します

インストールスクリプトが終了したらシステムを再起動します。起動後、nvidia-smiでGPU1名、ドライバー版、総メモリを確認してください。8GBカードで64GBプロファイルを想定していたのに32GBと表示される場合は、シングルランクのボードかもしれません。ハードウェア情報を再確認し、READMEで対応するプロファイルを選びます。10GBカード用プロファイルは40GBと表示されます。

2つ目のコマンドでPCIeリンクの世代と幅を確認します。スロットが複数ある場合は、マザーボードのレーン共有表と照合してください。PixelMLはGen2をテストし、試した4枚すべてでGen3はヒューズにより制限されていました。リンクが想定と異なる場合は、カード、スロット、ライザー、BIOS設定を一つずつ確認します。

想定どおりの容量とドライバーでも、モデルの実行は別途確認します。使用する実行環境がGA100カーネルに対応するかを確認し、モデルを読み込んで短いプロンプト2と普段使う文脈長3の要求を送ります。メモリ割り当てに失敗したら文脈長や実行バッファを減らして再確認します。カーネルモジュールの読み込みに失敗した場合は、ドライバーブランチ、カーネルヘッダー、Secure Bootの状態を確認してください。

GPUメモリとPCIeリンクを確認
nvidia-smi
nvidia-smi -q -d PCI
最初の出力で総メモリを、PCI項目でリンク状態を確認します。
開いたケースにGPUカードが2枚取り付けられ、ファンと目盛りのない計測器が置かれています。
インストール後に長時間負荷をかける前に、ファンがカードへ風を送るか確認します。

問題が起きたら最初に失敗した段階から確認します

install.shがカーネルヘッダーやソースを見つけられない場合は、uname -rで実行中カーネルを確認し、同じバージョンのヘッダーが導入されているか調べます。ビルドでドライバーソースを取得できない場合は、初回導入時のネットワーク接続とリポジトリアクセスを確認してください。モジュールが読み込まれない場合は、BIOS/UEFIのSecure Boot状態と、ドライバー・ライブラリ・ファームウェアのブランチが一致しているかを順に確認します。

nvidia-smiがGPUを検出できない場合は、再起動したか確認し、エラーメッセージとインストールログから最初のモジュールビルド・読み込み失敗を調べます。想定より少ないメモリが表示されたら、出荷時容量、メモリランク、自動検出されたプロファイルを確認してください。任意のプロファイルを繰り返し試すより、カード情報を照合して適切なプロファイルで再インストールする方が原因を絞り込めます。

削除スクリプトと再起動でロールバックします

元のドライバーモジュール状態に戻すには、cmpunlockerフォルダーでREADME記載の削除スクリプトを実行し、再起動します。--yesオプションは確認を求めずに進むため、実行前にGPUを使う作業を終えてください。再起動後、nvidia-smiでGPUが認識され、メモリ構成が以前の状態に戻ったか確認します。

cmpunlockerを削除して再起動
sudo ./remove.sh --yes
sudo reboot
メンテナーが案内している削除手順です。

用語の注釈

  1. GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

    本文に戻る
  2. プロンプト — モデルに送る入力文です。生成モデルでは作りたい結果を説明する文になり、出力の構成や内容を大きく左右します。

    本文に戻る
  3. コンテキスト長 — 1回のリクエストでモデルが扱える入力と生成内容のトークン範囲です。上限や実際のメモリ使用量はモデルと実行設定によります。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
cmpunlockerはLinux上でNVIDIAオープンカーネルモジュールにパッチを当て、CMP 170HXのメモリ構成を変更するツールです。リポジトリとドライバーの条件を満たしてインストールスクリプトを実行し、再起動すると、選択したプロファイルの容量がドライバーに表示されます。自動検出から始め、実際の容量を確認します。
必要なメモリはどのくらいですか?
READMEの要件は、Linux x86-64、root権限、NVIDIA CMP 170HX、NVIDIAオープンカーネルモジュールを含む610.xx.xx以降の対応ドライバー、同じドライバーブランチのライブラリ・ファームウェア、実行中カーネルに一致するヘッダーです。Python 3はビルド時に8GBまたは10GBのメモリジオメトリを選ぶためにも使われます。パッケージ名はディストリビューションごとに異なるため、カーネルヘッダーの導入方法は各ディストリビューションの案内に従ってください。
選ばないほうがよいのはどのような場合ですか?
任意の最新ドライバーを入れるのではなく、READMEの対応バージョンを確認してください。現在のREADMEには610.xx.xx以降と615.78.08が記載されています。ドライバーのライブラリとファームウェアが同じブランチか、ヘッダーがuname -rで示される実行中カーネルと一致するかも確認します。