pixi を触ってみた¶
複数の OS や CPU/GPU 環境に対応したパッケージマネージャー pixi を試し、基本設定と CUDA のサンプルで出たエラーを紹介します。CUDA を依存関係へ追加する手順は資料からの引用で、手元では未検証です。
pixi とは¶
pixi は、 既存の conda エコシステム上に構築された高速ソフトウェア パッケージ マネージャーです。Windows、macOS、Linux で開発環境を迅速に立ち上げます。
自動ロックファイルは、オペレーティング システム間で再現可能な環境を生成します ( Docker なしでも! )。
pixi は、Python、R、C/C++、Rust、Ruby など、多くの言語をサポートしています。
— pixi
Python プロジェクトをサポートする機能として、pyproject.toml形式で環境を管理できます。依存関係の解決やインストールにはuvが使われています。
pixi は複数環境の管理をサポートしており、CPU/GPU、Linux/macOS/Windows などの異なる環境ごとに環境を構築できます。
setup¶
サンプルの実行¶
CUDA を使う例が公式リポジトリにあるので、これを実行してみます。
実行したマシンには NVIDIA GPU もドライバーもなく、次のエラーで停止しました。この例は__cudaが 12.1 以上の環境を要求しています。
__cudaは、NVIDIA ドライバーが対応する CUDA の版を表す仮想パッケージです。CUDA Toolkit のインストール状況とは異なります。ドライバーの対応状況を使う仕組みは、conda の仮想パッケージの説明と、pixi の System Requirementsで確認できます。
CUDA パッケージを依存関係に追加する¶
CUDA ランタイムや Toolkit は、conda-forge からプロジェクトの依存関係として取得できます。ここからは、その追加手順を参考リンクから引用します。実行結果も同リンクのもので、筆者の環境では未検証です。
まずpixi searchで、追加できる版と依存関係を確認します。次の出力からチェックサムや URL は省きました。
依存先としてcuda-runtimeとcuda-toolkitも付いてきますが、pixi がまとめて解決します。あとは版を指定して追加すると、pixi.tomlの依存関係に加わります。
pixi addで追加すれば、CUDA パッケージの版をプロジェクト単位で管理できます。ただし、これで GPU やマシン側のドライバーが用意されるわけではありません。前節のエラーを解消して GPU で実行するには、対応する GPU とドライバーを備えた環境が必要です。
まとめ¶
pixi は conda エコシステムの上で動き、pyproject.toml形式の環境管理と、CPU/GPU や OS ごとの複数環境の切り替えに対応しています。今回の CUDA サンプルは、GPU とドライバーのない環境では実行できませんでした。CUDA パッケージを追加する手順は未検証であり、実行にはパッケージの依存関係だけでなく、マシン側の条件も満たす必要があります。