ゲート方式の量子コンピューターを模倣するソフトウェアの一つにGoogleが開発しているCirqがあります。CirqのバックエンドとしてNVIDIAが開発しているcuQuantumを使いたい場合、qsim
というライブラリをインストールする必要があります。しかし、PyPIで公開されているqsim
はGPUに対応していないため、ソースコードを自分の環境でコンパイルしなければなりません。この記事ではqsimのコンパイル時に自分が詰まった部分をまとめます。
※Docker containerとして提供されているcuQuantum Applianceを使えばこのような作業は必要ないと思います。
OS | Ubuntu 22.04.4 LTS |
CPU | AMD EPYC 7543 32-Core Processor |
GPU | NVIDIA A100 80GB |
nvcc | 12.4 (CUDA 12.4) |
CMake | 3.27.2 |
GCC | 11.4.0 |
Python | 3.11.4 |
手順
- cuQuantumのインストール (pipやaptのほか、NVIDIA DevZoneからarchiveを持ってくることも可能です)
詳細はリンク先の公式ドキュメント参照 qsim
のリポジトリをcloneするgit clone https://github.com/quantumlib/qsim.git
qsim
をコンパイルするexport CUQUANTUM_ROOT=<path to cuquntum> && cd qsim && make .
CUQUANTUM_ROOT
を定義しない場合、backendとしてcuQuantumを使えなくなります。pythonのスクリプトを実行して初めてエラーが出るので注意。qsimcirq
をインストールする
qsimディレクトリでpip install .
自分の場合はここでエラーが発生。
原因: 環境変数CUDAARCHS
が未設定だったこと。CMakeのおそらくconfigurationが失敗していた。
対策:CUDAARCHS
に適切な値を設定する。GPUのSM variationという数字を設定すれば良いです。GPUの世代と対応する数字はこのウェブサイトに書いてありました。- GPUが使えるかチェック
例えばpython -c "import qsimcirq; print(qsimcirq.qsim_gpu)"
など
その他
pip install .
でエラーが発生した場合、特にsubprocess内でエラーが発生したと言われた場合は、subprocessが実行したコマンドを自分で実行してみると詳細なエラー内容がわかります- cmake関連でエラーが発生している場合、
CMakeLists.txt
を確認すると良い場合があります。例えば今回のように必要な環境変数が定義されていないなどのエラーを発見できます。
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント