#概要
Jetson Nano や Jetson Xavier nx に Cupy をインストールしようとすると、何も考えずにビルドすると1時間超はかかる.なので、少しでも短縮しましょう、というお話。
#原因
Jetson Nano の Ubuntu Linux には CUDA10.0 以上が入ってるので、Cupy の場合、Kepler から Turing まで対応できるようにビルドしてしまう(のでビルドも時間かかるし出来上がったサイズもデカくなる)。
#対応策
制限事項:バージョンは、Ver7.0.0b2 以降でのみ有効(@kmaehashi さんからの指摘により修正)
Jetson Nano や Jetson Xavier nx の場合、環境変数で それぞれMaxwell (compute_53)、Volta(compute_70)だけビルド&インストールするように設定すればよい。ビルド時間&サイズも短縮縮小される。
Jetson Nano (Maxwell) の場合
sudo sh -c 'CUPY_NVCC_GENERATE_CODE="arch=compute_53,code=sm_53" pip3 install cupy'
Jetson Xavier nx (Volta) の場合
sudo sh -c 'CUPY_NVCC_GENERATE_CODE="arch=compute_70,code=sm_70" pip3 install cupy'
もちろん、Cupy のバージョンを指定してビルド&インストールも可能。
sudo sh -c 'CUPY_NVCC_GENERATE_CODE="arch=compute_70,code=sm_70" pip3 install cupy==7.0.0b2 -V'
#蛇足
知ってる人なら当たり前な話だけど、知らない人は知らないまま過ごす件だとは思われる。かつ、読んでもらえたらわかるけど、別に Jetson 限定の話ではなく、Linux な環境であれば適用できる話ではある。
#参考リンク
Cupy の Github
・ https://github.com/cupy/cupy
CUPY_NVCC_GENERATE_CODE
・ https://github.com/cupy/cupy/pull/2293
#改訂
- (2020.5.24 23:42 JST) Jetson Xavier nx 向けの記述を追加